
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <link rel="canonical" href="https://blog.csdn.net/qq_45704528/article/details/118635841"/>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="renderer" content="webkit"/>
    <meta name="force-rendering" content="webkit"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="report" content='{"pid": "blog", "spm":"1001.2101"}'>
    <meta name="referrer" content="always">
    <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />
    <meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">
    <meta name="applicable-device" content="pc">
    <link  href="https://g.csdnimg.cn/static/logo/favicon32.ico"  rel="shortcut icon" type="image/x-icon" />
    <title>面试官都震惊，你这网络基础可以啊！_Serendipity  sn的博客-CSDN博客</title>
    <script>
      (function(){ 
        var el = document.createElement("script"); 
        el.src = "https://s3a.pstatp.com/toutiao/push.js?1abfa13dfe74d72d41d83c86d240de427e7cac50c51ead53b2e79d40c7952a23ed7716d05b4a0f683a653eab3e214672511de2457e74e99286eb2c33f4428830"; 
        el.id = "ttzz"; 
        var s = document.getElementsByTagName("script")[0]; 
        s.parentNode.insertBefore(el, s);
      })(window)
    </script>
        <meta name="keywords" content="面试官都震惊，你这网络基础可以啊！">
        <meta name="csdn-baidu-search"  content='{"autorun":true,"install":true,"keyword":"面试官都震惊，你这网络基础可以啊！"}'>
    <meta name="description" content="目录网络1.对网络的基础认识&amp;lt;1&amp;gt;.组网方式&amp;lt;2&amp;gt;.OSI七层模型&amp;lt;3&amp;gt;.TCP/IP五层（四层模型）&amp;lt;4&amp;gt;.对封装分用的理解2.网络数据传输&amp;lt;1&amp;gt;局域网(1)认识IP和MAC(2)网络数据传输的特性(3)网络数据传输流程1)网络互联的方式2).局域网交换机组网的方式3)局域网交换机+路由器组网的方式&amp;lt;2&amp;gt;广域网传输流程3.UDP和TCP&amp;lt;1&amp;gt;UDP协议&amp;lt;2&amp;gt;TCP协议(可靠的传输协议)(1)TCP相关概念(2)">
    <script src="//g.csdnimg.cn/tingyun/1.8.5/blog.js" type='text/javascript'></script>
        <link rel="stylesheet" type="text/css" href="https://csdnimg.cn/release/blogv2/dist/pc/css/detail_enter-049c37bb43.min.css">
    <style>
        #content_views pre{
            -webkit-touch-callout: none;
            -webkit-user-select: none;
            -khtml-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none; 
            user-select: none; 
        }
        #content_views pre code{
            -webkit-touch-callout: none;
            -webkit-user-select: none;
            -khtml-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none; 
            user-select: none; 
        }
    </style>
    <script type="application/ld+json">{"@context":"https://ziyuan.baidu.com/contexts/cambrian.jsonld","@id":"https://blog.csdn.net/qq_45704528/article/details/118635841","appid":"1638831770136827","pubDate":"2021-07-10T15:27:09","title":"面试官都震惊，你这网络基础可以啊！_Serendipity  sn的博客-CSDN博客","upDate":"2021-07-10T15:52:44"}</script>
        <link rel="stylesheet" type="text/css" href="https://csdnimg.cn/release/blogv2/dist/pc/themesSkin/skin-shirtblue/skin-shirtblue-b2ba816980.min.css">
    <script src="https://csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        var isCorporate = false;//注释删除enterprise
        var username =  "qq_45704528";
        var skinImg = "white";
        var blog_address = "https://blog.csdn.net/qq_45704528";
        var currentUserName = "";
        var isOwner = false;
        var loginUrl = "http://passport.csdn.net/account/login?from=https://blog.csdn.net/qq_45704528/article/details/118635841";
        var blogUrl = "https://blog.csdn.net/";
        var avatar = "https://profile.csdnimg.cn/3/E/A/3_qq_45704528";
        var articleTitle = "面试官都震惊，你这网络基础可以啊！";
        var articleDesc = "目录网络1.对网络的基础认识&amp;lt;1&amp;gt;.组网方式&amp;lt;2&amp;gt;.OSI七层模型&amp;lt;3&amp;gt;.TCP/IP五层（四层模型）&amp;lt;4&amp;gt;.对封装分用的理解2.网络数据传输&amp;lt;1&amp;gt;局域网(1)认识IP和MAC(2)网络数据传输的特性(3)网络数据传输流程1)网络互联的方式2).局域网交换机组网的方式3)局域网交换机+路由器组网的方式&amp;lt;2&amp;gt;广域网传输流程3.UDP和TCP&amp;lt;1&amp;gt;UDP协议&amp;lt;2&amp;gt;TCP协议(可靠的传输协议)(1)TCP相关概念(2)";
        var articleTitles = "面试官都震惊，你这网络基础可以啊！_Serendipity  sn的博客-CSDN博客";
        var nickName = "Serendipity  sn";
        var articleDetailUrl = "https://blog.csdn.net/qq_45704528/article/details/118635841";
        if(window.location.host.split('.').length == 3) {
            blog_address = blogUrl + username;
        }
        var skinStatus = "White";
        var blogStaticHost = "https://csdnimg.cn/release/blogv2/"
    </script>
    <script src="https://g.csdnimg.cn/??fixed-sidebar/1.1.6/fixed-sidebar.js" type="text/javascript"></script>
    <script src='//g.csdnimg.cn/common/csdn-report/report.js' type='text/javascript'></script>
    <link rel="stylesheet" type="text/css" href="https://csdnimg.cn/public/sandalstrap/1.4/css/sandalstrap.min.css">
    <style>
        .MathJax, .MathJax_Message, .MathJax_Preview{
            display: none
        }
    </style>
    <script src="https://dup.baidustatic.com/js/ds.js"></script>
</head>
<body class="nodata " style="">
        <script>
            var toolbarSearchExt = '{"landingWord":[],"queryWord":"","tag":["网络"],"title":"面试官都震惊，你这网络基础可以啊！"}';
        </script>
    <script src="https://g.csdnimg.cn/common/csdn-toolbar/csdn-toolbar.js" type="text/javascript"></script>
    <script>
    (function(){
        var bp = document.createElement('script');
        var curProtocol = window.location.protocol.split(':')[0];
        if (curProtocol === 'https') {
            bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
        }
        else {
            bp.src = 'http://push.zhanzhang.baidu.com/push.js';
        }
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s);
    })();
    </script>
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/pc/css/blog_code-01256533b5.min.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/chart-3456820cac.css" />
<div class="main_father clearfix d-flex justify-content-center" style="height:100%;"> 
    <div class="container clearfix" id="mainBox">
        <main>
<script type="text/javascript">
    function getQueryString(name) {   
      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象  
      var r = window.location.search.substr(1).match(reg);  //匹配目标参数
      if( r != null ) return decodeURIComponent( r[2] ); return '';   
    }
    function stripscript(s){ 
      var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~！@#￥……&*（）——|{}【】‘；：”“'。，、？%]") 
      var rs = ""; 
      for (var i = 0; i < s.length; i++) { 
        rs = rs+s.substr(i, 1).replace(pattern, ''); 
      } 
      return rs; 
    }
    var blogHotWords = stripscript(getQueryString('utm_term')).length > 1 ? stripscript(getQueryString('utm_term')) : ''
</script>
<div class="blog-content-box">
        <div class="article-header-box">
        <div class="article-header">
            <div class="article-title-box">
                <h1 class="title-article" id="articleContentId">面试官都震惊，你这网络基础可以啊！</h1>
            </div>
            <div class="article-info-box">
                <div class="article-bar-top">
                    <img class="article-type-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/original.png" alt="">
                    <div class="bar-content">
                        <span class="c-gray">置顶</span>
                    <a class="follow-nickName " href="https://blog.csdn.net/qq_45704528" target="_blank" rel="noopener">Serendipity  sn</a>
                    <span class="time">2021-07-10 15:52:44</span>
                    <img class="article-read-img article-heard-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/articleReadEyes.png" alt="">
                    <span class="read-count">146328</span>
                    <a id="blog_detail_zk_collection" class="un-collection" data-report-click='{"mod":"popu_823","spm":"1001.2101.3001.4232","ab":"new"}'>
                        <img class="article-collect-img article-heard-img un-collect-status isdefault" style="display:inline-block" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarCollect.png" alt="">
                        <img class="article-collect-img article-heard-img collect-status isactive" style="display:none" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarCollectionActive.png" alt="">
                        <span class="name">收藏</span>
                        <span class="get-collection">
                            11170
                        </span>
                    </a>
                    </div>
                </div>
                <div class="blog-tags-box">
                    <div class="tags-box artic-tag-box">
                            <span class="label">分类专栏：</span>
                                <a class="tag-link" href="https://blog.csdn.net/qq_45704528/category_11008652.html" target="_blank" rel="noopener">Java从入门到精通</a>
                            <span class="label">文章标签：</span>
                                <a data-report-click='{"mod":"popu_626","spm":"1001.2101.3001.4223","strategy":"网络","ab":"new"}' class="tag-link" href="https://www.csdn.net/tags/MtzaIgwsNDIwOTMtYmxvZwO0O0OO0O0O.html" target="_blank" rel="noopener">网络</a>
                            <a class="origin-plan-box" data-report-click='{"spm":"1001.2101.3001.5794"}' href="https://marketing.csdn.net/p/55d59e00e66e4d3796149b096ae7c810" target="_blank">
                                <img src="https://csdnimg.cn/release/blogv2/dist/components/img/originPlan.png" alt=""><span class="origin-plan-name">原力计划</span>
                            </a>
                    </div>
                </div>
                <div class="slide-content-box">
                    <div class="article-copyright">
                        <div class="creativecommons">
                            版权声明：本文为博主原创文章，遵循<a href="http://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="noopener"> CC 4.0 BY-SA </a>版权协议，转载请附上原文出处链接和本声明。
                        </div>
                        <div class="article-source-link">
                            本文链接：<a href="https://blog.csdn.net/qq_45704528/article/details/118635841" target="_blank">https://blog.csdn.net/qq_45704528/article/details/118635841</a>
                        </div>
                    </div>
                </div>
                <div class="operating">
                    <a class="href-article-edit slide-toggle">版权</a>
                </div>
            </div>
        </div>
    </div>
        <div id="blogColumnPayAdvert">
            <div class="column-group">
                <div class="column-group-item column-group0 column-group-item-one">
                    <div class="item-l">
                        <a class="item-target" href="https://blog.csdn.net/qq_45704528/category_11008652.html" target="_blank" title="Java从入门到精通"
                        data-report-view='{"spm":"1001.2101.3001.6332"}'
                        data-report-click='{"spm":"1001.2101.3001.6332"}'>
                            <img class="item-target" src="https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224" alt="">
                            <span class="title item-target">Java从入门到精通</span>
                        </a>
                        <span class="dec">专栏收录该内容</span>
                    </div>
                    <div class="item-m">
                        <span>9 篇文章</span>
                        <span>64 订阅</span>
                    </div>
                    <div class="item-r">
                            <a class="item-target article-column-bt articleColumnFreeBt" data-id="11008652">订阅专栏</a>
                    </div>
                </div>
            </div>
        </div>
    <article class="baidu_pl">
        <div id="article_content" class="article_content clearfix">
        <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-1a85854398.css">
                <div id="content_views" class="markdown_views prism-atom-one-dark">
                    <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
                        <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
                    </svg>
                    <p></p>
<div class="toc">
 <h3>目录</h3>
 <ul><li><a href="#_1">网络</a></li><li><ul><li><a href="#1_3">1.对网络的基础认识</a></li><li><ul><li><a href="#1_5">&lt;1&gt;.组网方式</a></li><li><a href="#2OSI_34">&lt;2&gt;.OSI七层模型</a></li><li><a href="#3TCPIP_43">&lt;3&gt;.TCP/IP五层&#xff08;四层模型&#xff09;</a></li><li><a href="#4_60">&lt;4&gt;.对封装分用的理解</a></li></ul>
   </li><li><a href="#2_84">2.网络数据传输</a></li><li><ul><li><a href="#1_86">&lt;1&gt;局域网</a></li><li><ul><li><a href="#1IPMAC_88">(1)认识IP和MAC</a></li><li><a href="#2_111">(2)网络数据传输的特性</a></li><li><a href="#3_152">(3)网络数据传输流程</a></li><li><ul><li><a href="#1_162">1)网络互联的方式</a></li><li><a href="#2_211">2).局域网交换机组网的方式</a></li><li><a href="#3_233">3)局域网交换机&#43;路由器组网的方式</a></li></ul>
    </li></ul>
    </li><li><a href="#2_272">&lt;2&gt;广域网传输流程</a></li></ul>
   </li><li><a href="#3UDPTCP_340">3.UDP和TCP</a></li><li><ul><li><a href="#1UDP_342">&lt;1&gt;UDP协议</a></li><li><a href="#2TCP_368">&lt;2&gt;TCP协议(可靠的传输协议)</a></li><li><ul><li><a href="#1TCP_370">(1)TCP相关概念</a></li><li><a href="#2_388">(2)确认应答机制</a></li><li><a href="#3_400">(3)超时重传机制(安全机制)</a></li><li><a href="#4_414">(4)连接管理机制&#xff08;安全机制&#xff09;</a></li><li><a href="#5_463">(5)滑动窗口&#xff08;效率&#xff09;</a></li><li><a href="#6_501">(6)流量控制机制&#xff08;安全机制&#xff09;</a></li><li><a href="#7_516">(7)拥塞控制机制&#xff08;安全机制&#xff09;</a></li><li><a href="#8_533">(8)延迟应答机制(效率)</a></li><li><a href="#9_545">(9)捎带机制&#xff08;效率&#xff09;</a></li></ul>
    </li><li><a href="#3TCP_553">&lt;3&gt;TCP的总结</a></li><li><ul><li><a href="#1TCP_555">(1)TCP特性</a></li><li><a href="#2_562">(2)面向字节流</a></li><li><a href="#3_573">(3)粘包问题</a></li></ul>
    </li><li><a href="#4UDP_VS_TCP_584">&lt;4&gt;UDP VS TCP</a></li><li><ul><li><a href="#1UDPTCP_586">(1)UDP和TCP的特性</a></li><li><a href="#2UDP_591">(2)如何使用UDP进行可靠传输</a></li></ul>
   </li></ul>
   </li><li><a href="#4MTUIP_599">4.MTU和IP协议</a></li><li><ul><li><a href="#1MTU_601">&lt;1&gt;MTU协议</a></li><li><a href="#2IP_608">&lt;2&gt;IP协议</a></li></ul>
   </li><li><a href="#5HTTPHTTPS_623">5.HTTP和HTTPS</a></li><li><ul><li><a href="#1HTTP_625">&lt;1&gt;HTTP</a></li><li><ul><li><a href="#1Http_627">(1)Http的前置知识</a></li><li><ul><li><a href="#1_629">1)网络数据传输</a></li><li><a href="#2URL_638">2)认识URL</a></li></ul>
     </li><li><a href="#2HTTP_643">(2)HTTP</a></li><li><ul><li><a href="#1_645">1)域名</a></li><li><a href="#2http_657">2)http协议格式</a></li><li><a href="#3http_661">3)http请求方法</a></li><li><a href="#4http_681">4)http状态码</a></li><li><a href="#5http_694">5)http头信息</a></li></ul>
    </li></ul>
    </li><li><a href="#2HTTPS_699">&lt;2&gt;HTTPS</a></li></ul>
   </li><li><a href="#6_760">6.正向代理和反向代理</a></li><li><ul><li><a href="#1_762">&lt;1&gt;.正向代理服务器</a></li><li><a href="#2_778">&lt;2&gt;.反向代理服务器</a></li></ul>
   </li><li><a href="#7_795">7.网络面试题</a></li><li><ul><li><a href="#1TCPIP_797">&lt;1&gt;.说一说TCP/IP模型&#xff0c;以及都做了哪些事情</a></li><li><a href="#2TCP_803">&lt;2&gt;.说一说TCP的三次握手四次挥手</a></li><li><a href="#3IPV4IPV6_847">&lt;3&gt;IPV4和IPV6的区别</a></li><li><a href="#4TCPUDP_855">&lt;4&gt;TCP和UDP的区别</a></li><li><a href="#5UDP_864">&lt;5&gt;如何用UDP进行可靠传输</a></li><li><a href="#6_870">&lt;6&gt;正向代理和反向代理的区别</a></li><li><a href="#7HTTPHTTPS_876">&lt;7&gt;说说HTTP和HTTPS</a></li><li><a href="#8httpsSSL_896">&lt;8&gt;https中SSL握手的过程</a></li><li><a href="#9DNSDNSIP_908">&lt;9&gt;DNS解析&#xff08;DNS找IP&#xff09;</a></li><li><a href="#10GETPOST_924">&lt;10&gt;GET和POST的区别</a></li><li><a href="#11_936">&lt;11&gt;常见的状态码</a></li><li><a href="#12URL_946">&lt;12&gt;输入一个URL到浏览器中&#xff0c;会发生什么</a></li></ul>
  </li></ul>
 </li></ul>
</div>
<p></p> 
<h1><a id="_1"></a>网络</h1> 
<h2><a id="1_3"></a>1.对网络的基础认识</h2> 
<h3><a id="1_5"></a>&lt;1&gt;.组网方式</h3> 
<p>1.网络互联:使用集线器将少量主机连在一起</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710152912947.png" alt="在这里插入图片描述" /></p> 
<ol start="2"><li> <p>局域网(LAN):使用交换机和路由器将主机连接&#xff0c;可以自由组合三种方式</p> <p>组网方式&#xff1a;</p> <p>&lt;1&gt;.交换机</p> <p>&lt;2&gt;.路由器</p> <p>&lt;3&gt;.交换机&#43;路由器</p> </li></ol> 
<p><img src="https://img-blog.csdnimg.cn/20210710152936441.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>3.广域网(WAN):广域网和局域网知识相对的概念</p> 
<p>例如&#xff1a;一个学校之间的网络就可以成为局域网&#xff0c;而一个国家&#xff0c;多个国家之间可以称为广域网&#xff0c;覆盖的区域不同<img src="https://img-blog.csdnimg.cn/20210710152958455.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>组网方式&#xff1a;公网上&#xff0c;网络结点组成&#xff0c;每一个结点可以是&#xff1a;</p> 
<p><img src="https://img-blog.csdnimg.cn/2021071015303550.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<h3><a id="2OSI_34"></a>&lt;2&gt;.OSI七层模型</h3> 
<p>1.对协议的简单理解&#xff1a;本质上是数据格式的定义。而知名的数据格式&#xff0c;大家普遍遵循的规定&#xff0c;就属于协议</p> 
<p>2.OSI七层模型&#xff1a;一种网络分层的设计方法论&#xff0c;比较复杂且不实用&#xff0c;落地几乎都是TCP/IP四层&#xff0c;五层模型</p> 
<p><img src="https://img-blog.csdnimg.cn/2021071015494963.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<h3><a id="3TCPIP_43"></a>&lt;3&gt;.TCP/IP五层&#xff08;四层模型&#xff09;</h3> 
<p>五层模型&#xff1a;除去OSI的表示层和会话层</p> 
<p>四层模型&#xff1a;除去OSI的表示层&#xff0c;会话层和物理层</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153109182.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p><strong>注意&#xff1a;</strong></p> 
<p>应用程序实现对应用层的封装分用</p> 
<p>对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;&#xff08;四.层封装分用&#xff09;对于一台路由器, 它实现了从网络层到物理层;&#xff08;下三层封装分用&#xff09;<br /> 对于一台交换机, 它实现了从数据链路层到物理层;&#xff08;下两层分装分用&#xff09;<br /> 对于集线器, 它只实现了物理层;</p> 
<h3><a id="4_60"></a>&lt;4&gt;.对封装分用的理解</h3> 
<p><strong>1.封装&#xff1a;发送数据时&#xff0c;从高到低的顺序&#xff0c;按照对应的网络分层协议对数据进行包装</strong><br /> <img src="https://img-blog.csdnimg.cn/20210710153123772.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>例如&#xff1a;</p> 
<p><img src="https://img-blog.csdnimg.cn/2021071015501532.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p><strong>2.分用&#xff1a;封装的逆过程&#xff1a;接收数据时&#xff0c;从低到高的顺序&#xff0c;按照对应的网络分层协议&#xff0c;解析数据</strong></p> 
<p><img src="https://img-blog.csdnimg.cn/20210710155031819.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>例如&#xff1a;</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710155041535.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<h2><a id="2_84"></a>2.网络数据传输</h2> 
<h3><a id="1_86"></a>&lt;1&gt;局域网</h3> 
<h4><a id="1IPMAC_88"></a>(1)认识IP和MAC</h4> 
<p><strong>IP:</strong></p> 
<p>IP的格式&#xff1a;xxx.xxx.xxx.xxx<br /> IP由四个部分组成&#xff0c;每个部分都是0-255.<br /> 网络号&#xff1a;前三个部分组成&#xff08;用来标识网段&#xff09;&#xff0c;前三个部分相同&#xff0c;标识在一个网段<br /> 主机号&#xff1a;最后一个部分用来标识主机号<br /> IP分为A-E五大类&#xff0c;部分范围是局域网IP&#xff0c;部分是广域网IP&#xff0c;可以根据规范&#xff0c;知道某个IP是局域网IP还是公网IP<br /> 注意&#xff1a; 局域网内&#xff08;局域网IP&#xff09;&#xff1a;网段唯一&#xff0c;同一个网段&#xff0c;主机号唯一<br /> 公网(公网IP&#xff09;&#xff1a;公网IP是唯一的</p> 
<p><strong>MAC:</strong></p> 
<p>和网卡硬件绑定的&#xff0c;全球唯一<br /> 作用&#xff1a;网络数据传输定位网卡硬件的位置&#xff0c;一个主机可能有多个网卡&#xff08;例如蓝牙连接&#xff0c;无线连接&#xff0c;有线连接的网卡&#xff09;&#xff0c;电脑硬件定位数据发送的目的位置只能使用MAC</p> 
<p><strong>总结&#xff1a;</strong><br /> IP地址描述的是路途总体的起点和终点。&#xff08;给人用的&#xff0c;网络主机的逻辑地址&#xff09;<br /> MAC地址描述的是路途上的每一个区间的起点和终点&#xff08;给电脑硬件用的&#xff0c;网络主机的物理地址&#xff09;</p> 
<h4><a id="2_111"></a>(2)网络数据传输的特性</h4> 
<p>1.IP&#xff0c;MAC起的作用<br /> 2.封装分用——发送数据从高到低封装&#xff0c;接收数据从低到高分用<br /> 3.结合IP&#xff0c;MAC&#xff0c;理解网络数据传输&#xff0c;本质上是一跳一跳的传输数据</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153249563.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>首先根据目的主机发送http请求&#xff0c;从源IP发送数据到目的IP<br /> 从源MAC&#xff08;1&#xff09;发送数据到目的MAC&#xff08;2&#xff09;&#xff0c;然后MAC&#xff08;2&#xff09;对数据进行封装和分用&#xff0c;再以MAC&#xff08;2&#xff09;为源MAC&#xff0c;目的MAC为MAC&#xff08;3&#xff09;&#xff0c;以此&#xff0c;发送数据到最终目的MAC。<br /> 注意&#xff1a; 接收数据报的主机&#xff1a;可能在一些情况下&#xff08;广播或者转发&#xff09;&#xff0c;出现目的MAC不是我&#xff0c;我也能收到的情况&#xff08;后面会提到&#xff09;。</p> 
<p><strong>五元组&#xff1a;</strong><br /> 源IP&#xff0c;目的IP&#xff0c;源端口&#xff0c;目的端口&#xff0c;协议号</p> 
<p>IP&#xff1a;标识主机&#xff0c;给人用<br /> 源IP&#xff1a;发送数据的主机<br /> 目的IP&#xff1a;接收数据的主机</p> 
<p>端口号&#xff1a;<br /> 源端口&#xff1a;标识发送数据的进程<br /> 目的端口&#xff0c;标识接收数据的进程<br /> 协议号&#xff1a;进程需要封装&#xff0c;解析数据报的数据格式</p> 
<p><strong>DNS协议&#xff1a;</strong><br /> 作用&#xff1a;域名转IP</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153306203.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>主机/路由器&#xff1a;都存在DNS缓存<br /> 域名查询的方式&#xff1a;上图树形结构从下往上查找&#xff08;缓存&#xff0c;域名服务器&#xff09;。<br /> 先在主机/路由器的DNS缓存中找&#xff0c;如果找不到&#xff0c;依次向上</p> 
<p>特殊的IP&#xff0c;域名&#xff1a;本机IP为127.0.0.1&#xff0c;本机域名为localhost</p> 
<h4><a id="3_152"></a>(3)网络数据传输流程</h4> 
<p><strong>ARP/RARP协议&#xff1a;</strong><br /> 主机中有ARP缓存表<br /> ARP协议&#xff1a;IP转MAC<br /> RARP协议&#xff1a;MAC转IP</p> 
<p>注意&#xff1a;交换机和集线器自己是没有MAC地址的&#xff0c;都是通过转发(不会修改源MAC和目的MAC&#xff09;<br /> 交换机有MAC地址转换表&#xff0c;可以根据MAC找到对应的端口&#xff0c;而集线器没有这个功能</p> 
<h5><a id="1_162"></a>1)网络互联的方式</h5> 
<p><img src="https://img-blog.csdnimg.cn/20210710153324631.png" alt="在这里插入图片描述" /></p> 
<p>首先介绍集线器&#xff1a;如上图&#xff0c;网络数据传输时&#xff0c;直接转发到其他所有端口&#xff08;工作在物理层&#xff09;</p> 
<p>网络数据传输的过程&#xff1a;</p> 
<p><strong>1.ARP缓存表找到了</strong></p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153334819.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>1.主机1发送数据到主机3&#xff08;http&#xff1a;//主机3&#xff1a;80&#xff09;<br /> 2.主机1查找本机的ARP缓存表&#xff0c;根据ARP协议&#xff0c;找到目的MAC<br /> 3.数据报由主机1&#xff0c;发送到集线器&#xff08;数据报中的源MAC&#xff08;主机1&#xff09;&#xff0c;目的MAC&#xff08;主机3&#xff09;真实的数据报<br /> 4.集线器转发数据报到除主机1的其他所有相连的主机&#xff08;主机2&#xff0c;主机3&#xff09;<br /> 5.主机2接收&#xff1a;数据报中&#xff0c;目的MAC不是我&#xff0c;丢弃<br /> 主机3接收&#xff0c;数据报中&#xff0c;目的MAC是我&#xff0c;接收<br /> 目的IP是我&#xff0c;交给对应端口处理&#xff0c;如果不是我&#xff0c;执行上述网络传输&#xff08;一跳一跳的过程&#xff09;</p> 
<p><strong>2.ARP缓存表没找到</strong></p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153345535.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>1.主机1发送数据到主机3&#xff0c;http&#xff1a;//主机3&#xff1a;80<br /> 2.主机1查找本机的ARP缓存表&#xff0c;发现找不到<br /> 3.主机1发送广播数据报&#xff08;非真实数据&#xff0c;只是要求对应主机返回MAC&#xff1a;我要IP为主机3的MAC&#xff0c;谁是主机3&#xff0c;快告诉我&#xff09;</p> 
<p><strong>注意&#xff1a;</strong></p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153358407.png" alt="在这里插入图片描述" /></p> 
<p>4.集线器转发到主机2&#xff0c;主机3<br /> 5.主机2接收&#xff1a;要求的IP不是我&#xff0c;丢弃<br /> 主机3接收&#xff1a;要求的IP是我&#xff0c;返回我的MAC<br /> 6.主机1收到主机3的返回数据&#xff08;IP&#xff0c;MAC&#xff09;更新自己的ARP缓存表<br /> 7.主机1发送真实的数据到主机3</p> 
<p><strong>注意&#xff1a;使用集线器的缺陷</strong><br /> 网络冲突&#xff0c;这样构成的网络区域叫冲突域/碰撞域&#xff08;例如&#xff0c;房间里有多个人说话&#xff0c;那么其中某一个人说话就听不清楚了&#xff09;</p> 
<h5><a id="2_211"></a>2).局域网交换机组网的方式</h5> 
<p><img src="https://img-blog.csdnimg.cn/20210710153409391.png" alt="在这里插入图片描述" /></p> 
<p>首先介绍交换机&#xff0c;交换机的作用&#xff1a;<br /> MAC地址转换表&#xff1a;保存连接的主机MAC和端口的映射&#xff0c;目的MAC是谁&#xff0c;直接转发到对应的端口&#xff08;不像集线器&#xff0c;发送到所有端口&#xff09;&#xff0c;不会产生冲突域。</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153416984.png" alt="在这里插入图片描述" /></p> 
<p>1.主机1发送数据到主机3 &#xff0c;http&#xff1a;//主机3&#xff1a;80<br /> 2.主机1查找本机的ARP缓存表&#xff0c;如果找到&#xff0c;主机1发送数据到主机3。如果找不到&#xff0c;发送广播数据报&#xff0c;让IP为主机3的告诉我&#xff0c;你的MAC<br /> 3.交换机转发到其他所有端口&#xff08;广播&#xff09;<br /> 4.主机2丢弃&#xff0c;主机3返回自己的MAC<br /> 5.交换机知道主机3的MAC&#xff0c;主机1知道主机3的MAC&#xff08;更新ARP缓存表&#xff09;<br /> 注意&#xff1a;上述五个步骤&#xff0c;都是根据IP找MAC&#xff0c;和集线器的流程相似&#xff0c;下面的步骤时根据MAC找端口<br /> 6.主机1发送真实数据给交换机<br /> 7.交换机查找自己的MAC地址转换表&#xff0c;通过MAC找端口&#xff0c;发送数据到对应的端口<br /> 8.主机3接收&#xff0c;目的MAC是我&#xff0c;目的IP也是我<br /> 这种网络数据传输的方式就像&#xff1a;先问张三的手机号&#xff0c;再打电话给张三&#xff0c;对别人没有影响</p> 
<h5><a id="3_233"></a>3)局域网交换机&#43;路由器组网的方式</h5> 
<p><strong>注意&#xff1a;单独由路由器组网的方式&#xff0c;和上述由交换机单独组网的方式相同</strong><br /> 首先介绍路由器&#xff0c;这里介绍两种&#xff1a;<br /> &lt;1&gt;LAN口连接局域网&#xff0c;为主机分配局域网IP&#xff0c;分配的局域网IP都是一个网段&#xff08;路由器下连接多个主机的类型&#xff09;<br /> 路由器还有个网卡&#xff1a;绑定局域网的IP&#xff0c;和下面连接的主机进行信息交互用的</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153433400.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>&lt;2&gt;LAN口是网卡。每个LAN口都可以连接类似交换机组网的方式</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153444957.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>主机上的网络信息&#xff1a;</p> 
<p><img src="https://img-blog.csdnimg.cn/2021071015345511.png" alt="在这里插入图片描述" /></p> 
<p>第二种路由器组网方式&#xff1a;</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153506391.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>1.主机1发送数据到主机2:http://192.168.2.y:8080/xxx<br /> 2.通过目的IP&#43;子网掩码&#xff0c;计算出目的主机和本机是否在一个网段<br /> 3.如果是&#xff0c;不需要使用路由器&#xff0c;和上述使用交换机组网方式一样<br /> 4.如果不是&#xff0c;表示我主机1和交换机处理不了&#xff0c;要发送给网关转发&#xff08;网关就类似于IP的管理者&#xff0c;能查询其他主机的IP&#xff09;<br /> 5.数据报发送给网关设备<br /> <img src="https://img-blog.csdnimg.cn/20210710153517113.png" alt="在这里插入图片描述" /></p> 
<p>目的MC&#xff1a;通过路由器网关的IP在主机1的ARP缓存表中&#xff0c;获取网关的MAC<br /> 6.路由器接收到数据报&#xff0c;分用&#xff1a;物理层到网络层&#xff0c;网络层分用&#xff0c;所有可以获取到目的IP<br /> 7.路由器查找自己的ARP缓存表&#xff08;IP找MAC&#xff09;<br /> 8.找不到&#xff0c;路由器发广播&#xff0c;主机2在哪&#xff0c;告诉我你的MAC<br /> 9.有了MAC&#xff0c;直接发到主机3</p> 
<h3><a id="2_272"></a>&lt;2&gt;广域网传输流程</h3> 
<p>1.NAT和NAPT</p> 
<p>NAT协议&#xff1a;局域网IP映射公网IP<br /> NAPT协议&#xff1a;局域网IP&#43;局域网端口映射-----&gt;公网IP&#43;公网端口</p> 
<p>2.传输流程</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153534640.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p><strong>结合上图&#xff0c;理解广域网传输流程</strong><br /> 首先&#xff1a;主机1发送http://www.baidu.com网络流程</p> 
<p><strong>传输流程</strong><br /> <strong>1</strong>首先主机1发送http请求&#xff0c;使用DNS协议&#xff1a;进行域名转IP<br /> 域名转IP&#xff1a;首先在本机DNS缓存表找&#xff0c;如果找不到----&gt;向上查找------&gt;如果根域名服务器也找不到&#xff0c;表示公网上没有该域名的主机</p> 
<p><strong>2.</strong> 找到IP&#xff0c;数据报IP部分&#xff0c;PORT部分都有了&#xff1a;</p> 
<p><img src="https://img-blog.csdnimg.cn/2021071015354550.png" alt="在这里插入图片描述" /></p> 
<ol start="3"><li> <p>根据目的IP计算是否和主机在同一个网段<br /> 主机1的IP&#43;子网掩码 计算出------&gt;主机1的网段<br /> 目的IP&#43;子网掩码 计算出-------&gt;目的主机的网段<br /> 通过上述计算&#xff0c;判断目的IP和主机是否在同一个网段</p> </li><li> <p>如果是同一个网段&#xff0c;和局域网传输一样<br /> 如果不是同一个网段&#xff1a;发送数据到网关<br /> 找网关的MAC&#xff1a;<br /> <img src="https://img-blog.csdnimg.cn/20210710153558152.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> </li><li> <p>找到网关的MAC之后&#xff0c;将http数据重新封装&#xff0c;交由交换机转发<br /> 交换机转发&#xff1a;在MAC地址转换表&#xff08;MAC映射端口&#xff09;&#xff0c;通过目的MAC找端口&#xff08;交换机的屁股口&#xff09;<br /> 注意&#xff1a;这个过程没有封装和分用</p> </li></ol> 
<p>注意&#xff1a;前五个步骤&#xff0c;和路由器组成的局域网传输流程一样 参考&#xff1a;局域网传输</p> 
<ol start="6"><li>路由器接收&#xff0c;分用数据报</li></ol> 
<p>注意&#xff1a;路由器会根据最短路径算法&#xff0c;计算出下一个发送数据的设备&#xff0c;会离目的IP更近一步</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153613285.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p><strong>7.</strong> 上述步骤之后&#xff0c;数据报由局域网到广域网进行传输<br /> 路途中的设备&#xff1a;</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153623906.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p><strong>8.</strong> 数据报到达百度服务器之后<br /> <img src="https://img-blog.csdnimg.cn/20210710153631881.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>**9.**数据由百度服务器返回&#xff0c;路途上经过的设备传输流程和步骤七相同&#xff08;但是不一定是原路返回)<br /> **10.**路由器1接收响应数据&#xff08;对接收的数据进行分用&#xff0c;修改&#xff0c;封装)</p> 
<p><img src="https://img-blog.csdnimg.cn/2021071015364661.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p><strong>11.</strong> 之后的步骤&#xff0c;和局域网传输相同<br /> 主机接收数据报&#xff0c;分用</p> 
<h2><a id="3UDPTCP_340"></a>3.UDP和TCP</h2> 
<h3><a id="1UDP_342"></a>&lt;1&gt;UDP协议</h3> 
<p>UDP协议端格式&#xff1a;<br /> <img src="https://img-blog.csdnimg.cn/20210710153659630.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>16位UDP校验和作用&#xff1a;类似于藏头诗&#xff0c;双方约定好的校验数据&#xff0c;进行数据校验</p> 
<p>UDP的特性&#xff1a;<br /> 1.无连接&#xff1a;没有建立连接就发数据<br /> 2.不可靠&#xff1a;没有类似TCP保证数据传输的安全机制&#xff0c;&#xff08;连接管理机制&#xff0c;确认应答机制&#xff0c;超时机制<br /> &#xff0c;&#xff09;效率更高。<br /> 3.面向数据报&#xff1a;只能一次接收&#xff08;系统级别的操作&#xff1a;调用系统函数&#xff09;<br /> 4.没有发送缓冲区&#xff08;发了消息就不管&#xff09;&#xff0c;有接收缓冲区<br /> 5.数据最大为64k<br /> <img src="https://img-blog.csdnimg.cn/20210710153711417.png" alt="在这里插入图片描述" /></p> 
<p>发送缓冲区&#xff1a;主机1发送完数据&#xff0c;发出之后就不管了<br /> 接收缓冲区&#xff1a;<br /> 如果发送端调用一次sendto, 发送100个字节, 那么接收端也必须调用对应的一次recvfrom, 接收100个字节; 而不能循环调用10次recvfrom, 每次接收10个字节;<br /> 所以&#xff0c;接收数据的时候&#xff0c;发送100个字节&#xff0c;系统读取只调用一次&#xff0c;但是可以读取多次发来的其他100字节。<br /> 但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致; 如果缓冲区满了, 再到达的UDP数据就会被丢弃;</p> 
<h3><a id="2TCP_368"></a>&lt;2&gt;TCP协议(可靠的传输协议)</h3> 
<h4><a id="1TCP_370"></a>(1)TCP相关概念</h4> 
<p>TCP协议&#xff1a;可靠的传输协议&#xff0c;安全&#xff0c;效率(有连接的可靠传输协议)<br /> 设计TCP协议的理念&#xff1a;非100%安全&#xff0c;保证可承受范围内的安全&#xff0c;尽可能的提高网络传输数据的效率<br /> TCP协议端格式&#xff1a;</p> 
<p><img src="https://img-blog.csdnimg.cn/2021071015372260.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>六位标志位&#xff1a;<br /> URG: 紧急指针是否有效<br /> ACK: 确认号是否有效<br /> PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走<br /> RST: 对方要求重新建立连接; 我们把携带RST标识的称为复位报文段<br /> SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段<br /> FIN: 通知对方, 本端要关闭了, 我们称携带FIN标识的为结束报文段<br /> 重点掌握ACK,SYN,FIN</p> 
<h4><a id="2_388"></a>(2)确认应答机制</h4> 
<p><img src="https://img-blog.csdnimg.cn/20210710153734546.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>主机A发送数据给主机B&#xff0c;每个数据都带了数据序号,主机B返回ACK应答<br /> 每一个ACK都带有对应的确认序列号, 意思是告诉发送者, 我已经收到了哪些数据; 下一次你从哪里开始发</p> 
<p>作用&#xff1a;<br /> 1.保证安全&#xff1a;保证‘我’发送的消息&#xff0c;对方必须确认并恢复<br /> 2.保证多条数据确认信息的安全&#xff08;告诉发送者&#xff0c;这次回应是对哪些数据&#xff0c;下次数据发送应该从什么时候开始&#xff09;</p> 
<h4><a id="3_400"></a>(3)超时重传机制(安全机制)</h4> 
<p>超时重传机制触发&#xff1a;主机A发送数据给主机B&#xff0c;如果主机A在一个特定的时间间隔内没有收到来自主机B的确认应答&#xff0c;就会进行数据重发。</p> 
<p>没有收到确认应答的情况&#xff1a;1.主机A的数据报在发送的过程中丢了。2.主机B的ACK应答丢了</p> 
<p>超时时间的确定&#xff1a;TCP会根据当时的网络状态&#xff0c;动态的计算数据发送的速度&#xff0c;得到单次数据报发送的最大生存时间&#xff08;MSL&#xff09;&#xff0c;超时时间即为&#xff08;2MSL&#xff09;</p> 
<p>了解&#xff1a;如果一直接收不到ACK&#xff0c;超时时间会如何处理&#xff1f;<br /> Linux中(BSD Unix和Windows也是如此), 超时以500ms为一个单位进行控制, 每次判定超时重发的超时时间都是500ms的整数倍.<br /> 如果重发一次之后, 仍然得不到应答, 等待 2500ms 后再进行重传.<br /> 如果仍然得不到应答, 等待 4500ms 进行重传. 依次类推, 以指数形式递增&#xff08;2的指数倍&#xff09;.<br /> 累计到一定的重传次数, TCP认为网络或者对端主机出现异常, 强制关闭连接.</p> 
<h4><a id="4_414"></a>(4)连接管理机制&#xff08;安全机制&#xff09;</h4> 
<p>流程图&#xff1a;</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153751100.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p><strong>1.建立连接------&gt;TCP三次握手:</strong></p> 
<p>TCP------&gt;三次握手的流程</p> 
<p>1.主机A发送syn到主机B&#xff0c;要求建立a到b的连接。此时主机A的状态为syn_sent<br /> 2.主机B回复ack&#43;syn&#xff08;这里的ack和syn数据报本来是两个&#xff0c;但是仅标志位不同&#xff0c;所以可以合并,为什么不是四次的原因&#xff09;&#xff0c;要求建立b到a的连接&#xff0c;主机B的状态为syn_rcvd<br /> 3.主机A回复第2步syn的ack。主机A的状态为established&#xff0c;建立A到B的连接<br /> 主机B接收到第3步的数据报&#xff0c;建立B到A 的连接&#xff0c;主机B的状态置为established</p> 
<p>TCP------&gt;三次握手中的问题&#xff1a;<br /> 1.syn为什么有两个&#xff1f;<br /> 双方的连接状态会持续&#xff0c;且连接是有方向的</p> 
<p>2.第二步中&#xff0c;为什么是ack&#43;syn&#xff1f;<br /> 本质上是一个发ack应答&#xff0c;一个发syn请求&#xff0c;而且是方向一致的两个数据报&#xff0c;可以合并</p> 
<p>3.第三步中&#xff0c;ack确认应答哪个&#xff1f;<br /> 应答第二步的syn</p> 
<p><strong>2.断开连接------&gt;TCP四次挥手:</strong></p> 
<p>TCP------&gt;四次挥手的流程<br /> 1.主机A发送fin到主机B&#xff0c;请求关闭a到b的连接<br /> 2.主机B回复ack&#xff0c;主机B的状态置为close_wait<br /> 3.主机B发送fin到主机A&#xff0c;请求关闭b到a的连接<br /> 4.值即A回复ack&#xff08;第三步的fin&#xff09;&#xff0c;状态置为time_wait<br /> 主机B接收到第四步的数据报&#xff0c;状态置为closed<br /> 主机A经过2MSL&#xff08;超时等待时间&#xff09;之后&#xff0c;状态置为closed</p> 
<p>TCP------&gt;4次挥手中的问题<br /> 1.第2步和第3步为什么不能和3次握手流程一样&#xff0c;进行合并<br /> 原因&#xff1a;第2步是TCP协议在系统内核中实现时&#xff0c;自动响应的ack<br /> 第3步时应用程序手动调用close来关闭连接的<br /> 程序在关闭连接之前&#xff0c;可能需要执行释放资源等前置操作&#xff0c;所以不能合并&#xff08;TCP协议实现时&#xff0c;没有这样进行设计&#xff09;</p> 
<p>2.第3步中&#xff0c;主机A为什么不能直接设置为closed状态<br /> 原因&#xff1a; 第4个数据报可能丢包&#xff0c;如果直接置为closed&#xff0c;丢包后无法重新发送数据。<br /> 主机B达到超时时间之后&#xff0c;会重发第三个数据报&#xff0c;然后要求主机A再次回复ack</p> 
<p>3.服务器出现大量的close_wait状态&#xff0c;是为什么&#xff1f;<br /> 服务端没有正确的关闭连接&#xff08;程序没有调用close&#xff0c;或者没有正确使用&#xff09;</p> 
<h4><a id="5_463"></a>(5)滑动窗口&#xff08;效率&#xff09;</h4> 
<p>如果没有滑动窗口&#xff0c;网路数据传输就是串行的方式&#xff08;发送一次之后&#xff0c;等待应答&#xff0c;这个时间内&#xff0c;主机A无事可做&#xff0c;主机B也一样&#xff09;&#xff0c;效率比较差。</p> 
<p>使用滑动窗口可以解决效率的问题&#xff1a;类似于多线程的方式&#xff0c;并发的&#xff0c;同时发送多个数据报。<br /> 如下图&#xff1a;</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153815495.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>1.窗口大小指的是无需等待确认应答而可以继续发送数据的最大值. 上图的窗口大小就是4000个字节(四个段).<br /> 2.发送前四个段的时候, 不需要等待任何ACK, 直接发送;<br /> 3.收到第一个ACK后, 滑动窗口向后移动, 继续发送第五个段的数据; 依次类推;<br /> 4.操作系统内核为了维护这个滑动窗口, 需要开辟 发送缓冲区 来记录当前还有哪些数据没有应答;只有确认应答过的数据, 才能从缓冲区删掉;<br /> 5.窗口越大, 则网络的吞吐率就越高;</p> 
<p>丢包问题&#xff1a;<br /> 1.数据报丢包</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153846997.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>如上图&#xff1a;如果主机A发送的数据报丢包&#xff0c;主机B的ack应答&#xff0c;会根据主机A已经收到的连续数据报的最大值&#43;1返回ack应答&#xff0c;当主机A收到三个同样的ack应答之后&#xff0c;会将丢掉的数据报进行重发&#xff08;具有接收缓冲区&#xff0c;来记录已经接收的数据报的序号&#xff09;</p> 
<p>2.ACK应答丢包&#xff1a;这种情况下, 部分ACK丢了并不要紧, 因为可以通过后续的ACK进行确认<br /> <img src="https://img-blog.csdnimg.cn/20210710153857920.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>如果是滑动窗口的第一个包丢了&#xff0c;根据上述数据报丢包的情况&#xff0c;收到了第6个报的ACK应答&#xff0c;是从6001开始&#xff0c;说明第一个报主机B已经收到&#xff0c;所以ack丢包可以根据后序ack确定数据报主机B是否收到</p> 
<p>关于滑动窗口的几个问题&#xff1a;<br /> &lt;1&gt;.滑动窗口的大小&#xff1a;无需等待确认应答而可以继续发送数据的最大值<br /> &lt;2&gt;.如何确定窗口的大小&#xff1a;由拥塞窗口和流量控制窗口决定&#xff08;滑动窗口大小&#61;&#xff08;拥塞窗口大小&#xff0c;流量控制大小&#xff09;&#xff09;&#xff08;后序会讲到&#xff09;<br /> &lt;3&gt;.如何滑动&#xff1a;依赖于ACK的确认序号&#xff08;ack确认序号前的数据报都已经接收到了&#xff09;&#xff0c;在该ACK确认序号前&#xff0c;当次并行收到了多少个数据报&#xff0c;就可以滑动多少<br /> &lt;4.&gt;为什么要有接收缓冲区和发送缓冲区&#xff1a;<br /> 发送端的发送缓冲区&#xff1a;记录已经发送的数据——搜到对应的ACK应答&#xff0c;才可以清理该数据<br /> 接收端的接收缓冲区&#xff1a;记录已经接收的数据——如果发送数据报丢包&#xff0c;才知道让对方重发</p> 
<h4><a id="6_501"></a>(6)流量控制机制&#xff08;安全机制&#xff09;</h4> 
<p>接收端处理数据的速度是有限的. 如果发送端发的太快, 导致接收端的缓冲区被打满, 这个时候如果发送端继续发送, 就<br /> 会造成丢包, 继而引起丢包重传等等一系列连锁反应.</p> 
<p>接收端将自己可以接收的缓冲区大小放入 TCP 首部中的 “窗口大小” 字段, 通过ACK端通知发送端;<br /> 窗口大小字段越大, 说明网络的吞吐量越高;<br /> 接收端一旦发现自己的缓冲区快满了, 就会将窗口大小设置成一个更小的值通知给发送端;<br /> 发送端接受到这个窗口之后, 就会减慢自己的发送速度;<br /> 如果接收端缓冲区满了, 就会将窗口置为0; 这时发送方不再发送数据, 但是需要定期发送一个窗口探测数据<br /> 段, 使接收端把窗口大小告诉发送端.</p> 
<p>当接收端使用流量控制窗口时&#xff0c;如何保证接受端的数据安全&#xff1f;<br /> 告诉发送端&#xff0c;影响发送端滑动窗口的大小</p> 
<h4><a id="7_516"></a>(7)拥塞控制机制&#xff08;安全机制&#xff09;</h4> 
<p>少量的丢包, 我们仅仅是触发超时重传; 大量的丢包, 我们就认为网络拥塞;</p> 
<p>发送端在网络状态不明的情况下&#xff0c;贸然发送大量的数据&#xff0c;会造成网络拥堵&#xff0c;需要先发送少量数据探路&#xff0c;设置拥塞窗口的大小<br /> <img src="https://img-blog.csdnimg.cn/20210710153917846.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>如上图&#xff1a;如何确定拥塞窗口的大小<br /> 此处引入一个概念程为拥塞窗口<br /> 发送开始的时候, 定义拥塞窗口大小为1;<br /> 每次收到一个ACK应答, 拥塞窗口加1;<br /> 每次发送数据包的时候, 将拥塞窗口和接收端主机反馈的窗口大小做比较, 取较小的值作为实际发送的窗口;<br /> 为了不增长的那么快, 因此不能使拥塞窗口单纯的加倍.<br /> 此处引入一个叫做慢启动的阈值<br /> 当拥塞窗口超过这个阈值的时候, 不再按照指数方式增长, 而是按照线性方式增长</p> 
<h4><a id="8_533"></a>(8)延迟应答机制(效率)</h4> 
<p>举个例子&#xff1a;<br /> 假设接收端缓冲区为1M. 一次收到了500K的数据; 如果立刻应答, 返回的窗口就是500K;<br /> 但实际上可能处理端处理的速度很快, 10ms之内就把500K数据从缓冲区消费掉了;<br /> 在这种情况下, 接收端处理还远没有达到自己的极限, 即使窗口再放大一些, 也能处理过来;<br /> 如果接收端稍微等一会再应答, 比如等待200ms再应答, 那么这个时候返回的窗口大小就是1M;</p> 
<p>延迟应答类型&#xff1a;<br /> 数量限制: 每隔N个包就应答一次;<br /> 时间限制: 超过最大延迟时间就应答一次;</p> 
<h4><a id="9_545"></a>(9)捎带机制&#xff08;效率&#xff09;</h4> 
<p>在延迟应答的基础上, 我们发现, 很多情况下, 客户端服务器在应用层也是 “一发一收” 的&#xff0c;意味着当客户端给服务端发送请求时&#xff0c;服务端会给客户端响应数据&#xff0c;此时ACK就像可以搭请求数据的顺风车&#xff0c;一起发送。</p> 
<p>接收端响应的ACK&#xff0c;和主动发送的数据&#xff0c;可以合并返回。</p> 
<h3><a id="3TCP_553"></a>&lt;3&gt;TCP的总结</h3> 
<h4><a id="1TCP_555"></a>(1)TCP特性</h4> 
<p>TCP是有连接的可靠协议</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153931432.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<h4><a id="2_562"></a>(2)面向字节流</h4> 
<p>TCP既有发送缓冲区&#xff0c;也有接收缓冲区&#xff0c;数据没有大小限制</p> 
<p>调用write时, 数据会先写入发送缓冲区中;<br /> 如果发送的字节数太长, 会被拆分成多个TCP的数据包发出;<br /> 如果发送的字节数太短, 就会先在缓冲区里等待, 等到缓冲区长度差不多了, 或者其他合适的时机发送出去;<br /> 接收数据的时候, 数据也是从网卡驱动程序到达内核的接收缓冲区;<br /> 然后应用程序可以调用read从接收缓冲区拿数据;<br /> 另一方面, TCP的一个连接, 既有发送缓冲区, 也有接收缓冲区, 那么对于这一个连接, 既可以读数据, 也可以写数据. 这个概念叫做 全双工</p> 
<h4><a id="3_573"></a>(3)粘包问题</h4> 
<p>在TCP的协议头中, 没有如同UDP一样的 “报文长度” 这样的字段, 但是有一个序号这样的字段<br /> 站在传输层角度看&#xff0c;报文是一个一个按照顺序排序好放在缓冲区&#xff0c;但是站在应用层角度看&#xff0c;都是一个个数字&#xff0c;不知道哪个数字是一段保文的开头&#xff0c;也不知道哪一个数字是结尾。这就是粘包<br /> 所以得明确一个报文的开头和结尾</p> 
<p>但是对应UDP来说&#xff1a;<br /> 对于UDP, 如果还没有上层交付数据, UDP的报文长度仍然在. 同时, UDP是一个一个把数据交付给应用层.就有很明确的数据边界.<br /> 站在应用层的站在应用层的角度, 使用UDP的时候, 要么收到完整的UDP报文, 要么不收. 不会出现&#34;半个&#34;的情况</p> 
<h3><a id="4UDP_VS_TCP_584"></a>&lt;4&gt;UDP VS TCP</h3> 
<h4><a id="1UDPTCP_586"></a>(1)UDP和TCP的特性</h4> 
<p>TCP用于可靠传输的情况, 应用于文件传输, 重要状态更新等场景;<br /> UDP用于对高速传输和实时性要求较高的通信领域, 例如, 早期的QQ, 视频传输等. 另外UDP可以用于广播</p> 
<h4><a id="2UDP_591"></a>(2)如何使用UDP进行可靠传输</h4> 
<p>引入序列号, 保证数据顺序;<br /> 引入确认应答, 确保对端收到了数据;<br /> 引入超时重传, 如果隔一段时间没有应答, 就重发数据;</p> 
<h2><a id="4MTUIP_599"></a>4.MTU和IP协议</h2> 
<h3><a id="1MTU_601"></a>&lt;1&gt;MTU协议</h3> 
<p>MTU相当于发快递时对包裹尺寸的限制. 这个限制是不同的数据链路对应的物理层, 产生的限制.<br /> 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;<br /> 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片<br /> 不同的数据链路层标准的MTU是不同的;</p> 
<h3><a id="2IP_608"></a>&lt;2&gt;IP协议</h3> 
<p>1.协议头格式</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710153949642.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>简单了解&#xff1a;<br /> 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4.</p> 
<p>8位服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位 TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个. 对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要&#xff08;应用层协议需要不同安全/效率需求&#xff0c;此时可以设置服务类型来满足&#xff09;</p> 
<p>下面三个字段都与数据链路层MTU相关&#xff1a;<br /> <img src="https://img-blog.csdnimg.cn/20210710154000590.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<h2><a id="5HTTPHTTPS_623"></a>5.HTTP和HTTPS</h2> 
<h3><a id="1HTTP_625"></a>&lt;1&gt;HTTP</h3> 
<h4><a id="1Http_627"></a>(1)Http的前置知识</h4> 
<h5><a id="1_629"></a>1)网络数据传输</h5> 
<p>网络数据传输&#xff0c;都需要使用相同的协议&#xff0c;双方约定好的统一规范&#xff08;封装和解析的数据格式规范&#xff09;<br /> 协议&#xff1a;数据格式的约定<br /> 目标&#xff1a;对于http协议来说&#xff0c;就是学习里边的协议格式。结合理论实操&#xff0c;进行程序的调试&#xff0c;http协议格式本身&#xff0c;http数据中&#xff0c;包括自己的数据格式</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710154021308.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<h5><a id="2URL_638"></a>2)认识URL</h5> 
<p><img src="https://img-blog.csdnimg.cn/20210710154051539.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<h4><a id="2HTTP_643"></a>(2)HTTP</h4> 
<h5><a id="1_645"></a>1)域名</h5> 
<p>域名&#xff1a;基于DNS解析为IP<br /> IP&#xff1a;网络中定位主机的地址&#xff08;逻辑地址&#xff09;<br /> PORT&#xff1a;端口号&#xff0c;定位某个主机中唯一的进程&#xff08;应用程序&#xff09;<br /> url&#xff1a;url是全路径&#xff08;绝对路径&#xff09;<br /> uri&#xff1a;uri包含了url这种全路径&#xff0c;还包含相对路径<br /> 特殊注意事项&#xff1a;输入域名直接访问&#xff0c;其实是访问/这个资源的路径。<br /> 浏览器中&#xff0c;不输入端口号&#xff0c;是因为http协议的默认端口是80<br /> url中的请求数据&#xff1a;请求路径&#xff1f;key1&#61;value1&amp;key2&#61;value2…<br /> 问号前代表绝对路径&#xff0c;问号后代表请求的资源&#xff0c;数据</p> 
<h5><a id="2http_657"></a>2)http协议格式</h5> 
<p><img src="https://img-blog.csdnimg.cn/20210710154113479.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<h5><a id="3http_661"></a>3)http请求方法</h5> 
<p><img src="https://img-blog.csdnimg.cn/20210710154124450.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p><strong>重点了解get和post方法</strong></p> 
<p><strong>get和post方法的区别&#xff1a;</strong></p> 
<p><img src="https://img-blog.csdnimg.cn/20210710154135633.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<blockquote> 
 <p>1.get的请求数据只能放在url中&#xff0c;post的数据&#xff0c;可以放在url和请求体</p> 
 <p>2.url长度有限制&#xff0c;所有get方法请求数据不能太多&#xff0c;冰球url只能传输ascli字符</p> 
 <p>3.安全性将&#xff0c;post可以存放请求数据在请求体&#xff0c;相对更加安全</p> 
 <p>其他区别&#xff1a;了解即可</p> 
</blockquote> 
<h5><a id="4http_681"></a>4)http状态码</h5> 
<p>服务端返回&#xff08;服务端设置&#xff09;&#xff0c;站在服务端的角色上&#xff0c;状态码都是对应的含义&#xff0c;站在客户端的角色上就不一定</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710154143854.png" alt="在这里插入图片描述" /></p> 
<p>注&#xff1a;x表示0到9的数字<br /> <strong>重点掌握&#xff1a;</strong></p> 
<p><img src="https://img-blog.csdnimg.cn/20210710154204457.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<h5><a id="5http_694"></a>5)http头信息</h5> 
<p><img src="https://img-blog.csdnimg.cn/20210710154213123.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<h3><a id="2HTTPS_699"></a>&lt;2&gt;HTTPS</h3> 
<p>HTTP是明文传输的&#xff0c;不安全<br /> HTTPS是基于HTTP&#43;SSL/TSL来实现的&#xff0c;发送的数据需要加密&#xff0c;接收到的数据需要解密&#xff0c;比HTTP安全&#xff0c;但是传输效率比HTTP低</p> 
<p>&lt;1&gt;.前置知识&#xff1a;为什么需要HTTPS</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710154226939.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>如上图&#xff1a;HTTP是不安全的&#xff0c;在传输的过程中&#xff0c;当客户端发送数据时&#xff0c;可能被钓鱼网站“欺骗”&#xff0c;将钓鱼网站当作服务端&#xff0c;或者直接被钓鱼网站窃取到数据&#xff0c;然后更改&#xff0c;造成不安全的影响</p> 
<p>此时需要解决&#xff1a;<br /> a&#xff1a;如何保证服务器是真实的&#xff0c;不是钓鱼网站&#xff1f;<br /> b&#xff1a;解决网络数据传输&#xff0c;使用明文&#xff0c;所有路途中的设备&#xff0c;如果获取到&#xff0c;存在信息泄露</p> 
<p>所以&#xff0c;就要使用到证书来解决安全问题<br /> a&#xff1a;权威的证书机构颁发的证书&#xff08;安装浏览器时&#xff0c;初始化就内置权威证书&#xff09;&#xff08;解决上述a问题&#xff09;<br /> b&#xff1a;https服务器证书&#xff08;解决上述b问题&#xff09;</p> 
<p>私钥&#xff0c;公钥&#xff0c;密钥&#xff1a;<br /> <img src="https://img-blog.csdnimg.cn/20210710154240788.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>密钥&#xff1a;客户端&#xff0c;服务端用来加解密<br /> 对称加密&#xff1a;使用同一个钥匙&#xff0c;来加解密<br /> 公钥的生成&#xff08;SSL握手阶段&#xff09;&#xff1a; 见SLL握手</p> 
<p>https中涉及的细节&#xff1a;<br /> 1.使用公钥和私钥来生成密钥&#xff08;这里是非对称加密生成密钥&#xff09;<br /> 2.密钥加解密真正的数据&#xff08;这里进行的对称加密&#xff0c;效率比非对称加密高&#xff09;</p> 
<p>如何获取并验证服务器证书&#xff1a;<br /> <img src="https://img-blog.csdnimg.cn/20210710154252625.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>具体流程&#xff1a;<a href="http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html">流程</a><br /> 1.用密钥进行加解密&#xff1a;<br /> &lt;1&gt;.客户端向服务端索要并验证公钥<br /> &lt;2&gt;.双放协商生成&#34;对话密钥&#34;<br /> &lt;3&gt;.双方采用“对话密钥”进行加解密通信</p> 
<p>2.HTTPS握手阶段&#xff08;根据公钥私钥生成对话密钥&#xff09;&#xff08;以上1&#xff0c;2步需要保证对话密钥不被钓鱼&#xff09;</p> 
<p><img src="https://img-blog.csdnimg.cn/20210710154311431.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>&lt;1&gt;.首先客户端给出协议版本号&#xff0c;一个客户端生成的随机数&#xff0c;以及支持的加密方式</p> 
<p>&lt;2&gt;.服务端确认双方使用的加密方式&#xff0c;给出数字证书&#xff0c;以及一个服务器生成的随机数</p> 
<p>&lt;3&gt;.客户端确认数字证书有效&#xff0c;然后生成一个新的随机数&#xff0c;并使用数字证书中的公钥&#xff0c;加密这个随机数&#xff0c;发个服务端</p> 
<p>&lt;4&gt;.服务端使用自己的私钥&#xff0c;获取客户端发来的随机数</p> 
<p>&lt;5&gt;.客户端和服务端根据约定的加密方式&#xff0c;使用前面的三个随机数&#xff0c;生成密钥</p> 
<p>3.发送数据的阶段&#xff1a;<br /> 客户端使用对话密钥加解密真正的数据<br /> 服务端使用对话密钥加解密真正的数据<br /> 注意&#xff1a;此部分被钓鱼也没有关系&#xff08;对话密钥无法解密&#xff09;</p> 
<h2><a id="6_760"></a>6.正向代理和反向代理</h2> 
<h3><a id="1_762"></a>&lt;1&gt;.正向代理服务器</h3> 
<p>&lt;1&gt;概念</p> 
<p>正向代理服务器&#xff1a;抓包工具<br /> 正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容&#xff0c;客户端向代理服务器发送一个请求&#xff0c;并且指定目标服务器&#xff0c;之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。</p> 
<p>&lt;2&gt;原理图</p> 
<p><img src="https://img-blog.csdnimg.cn/20210129210209729.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>&lt;3&gt;使用场景和特点</p> 
<p>1.特点&#xff1a;要访问的服务器只知道代理服务器来访问它&#xff0c;并不知道真实的客户端是谁<br /> 2.使用场景&#xff1a;正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率。</p> 
<h3><a id="2_778"></a>&lt;2&gt;.反向代理服务器</h3> 
<p>&lt;1&gt;概念</p> 
<p>反向代理服务器&#xff1a;nginx等<br /> 反向代理正好相反。对于客户端来说&#xff0c;反向代理就好像目标服务器。并且客户端不需要进行任何设置。客户端向反向代理发送请求&#xff0c;接着反向代理判断请求走向何处&#xff0c;并将请求转交给客户端&#xff0c;使得这些内容就好似他自己一样&#xff0c;一次客户端并不会感知到反向代理后面的服务&#xff0c;也因此不需要客户端做任何设置&#xff0c;只需要把反向代理服务器当成真正的服务器就好了</p> 
<p>&lt;2&gt;原理图</p> 
<p><img src="https://img-blog.csdnimg.cn/20210129210221594.png?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzA0NTI4,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" /></p> 
<p>&lt;3&gt;使用场景和特点</p> 
<p>1.特点:特点:反向代理服务器隐藏了真实服务器的信息&#xff0c;例如淘宝&#xff0c;京东&#xff0c;天猫等<br /> 2.使用场景:<br /> 反向代理的典型用途是将 防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡&#xff0c;或为后端较慢的服务器提供缓冲服务。</p> 
<h2><a id="7_795"></a>7.网络面试题</h2> 
<h3><a id="1TCPIP_797"></a>&lt;1&gt;.说一说TCP/IP模型&#xff0c;以及都做了哪些事情</h3> 
<p>TCP/IP模型分为五层&#xff0c;分别是应用层&#xff0c;传输层&#xff0c;网络层&#xff0c;数据链路层&#xff0c;物理层</p> 
<p>TCP/IP协议群主要是报文的拆分&#xff0c;增加协议头&#xff0c;数据的传输&#xff0c;路由和寻址以及数据的重组</p> 
<h3><a id="2TCP_803"></a>&lt;2&gt;.说一说TCP的三次握手四次挥手</h3> 
<p><strong>1.建立连接------&gt;TCP三次握手:</strong></p> 
<p>TCP------&gt;三次握手的流程</p> 
<p>1.主机A发送syn到主机B&#xff0c;要求建立a到b的连接。此时主机A的状态为syn_sent<br /> 2.主机B回复ack&#43;syn&#xff08;这里的ack和syn数据报本来是两个&#xff0c;但是仅标志位不同&#xff0c;所以可以合并,为什么不是四次的原因&#xff09;&#xff0c;要求建立b到a的连接&#xff0c;主机B的状态为syn_rcvd<br /> 3.主机A回复第2步syn的ack。主机A的状态为established&#xff0c;建立A到B的连接<br /> 主机B接收到第3步的数据报&#xff0c;建立B到A 的连接&#xff0c;主机B的状态置为established</p> 
<p>TCP------&gt;三次握手中的问题&#xff1a;<br /> 1.syn为什么有两个&#xff1f;<br /> 双方的连接状态会持续&#xff0c;且连接是有方向的</p> 
<p>2.第二步中&#xff0c;为什么是ack&#43;syn&#xff1f;<br /> 本质上是一个发ack应答&#xff0c;一个发syn请求&#xff0c;而且是方向一致的两个数据报&#xff0c;可以合并</p> 
<p>3.第三步中&#xff0c;ack确认应答哪个&#xff1f;<br /> 应答第二步的syn</p> 
<p><strong>2.断开连接------&gt;TCP四次挥手:</strong></p> 
<p>TCP------&gt;四次挥手的流程<br /> 1.主机A发送fin到主机B&#xff0c;请求关闭a到b的连接<br /> 2.主机B回复ack&#xff0c;主机B的状态置为close_wait<br /> 3.主机B发送fin到主机A&#xff0c;请求关闭b到a的连接<br /> 4.值即A回复ack&#xff08;第三步的fin&#xff09;&#xff0c;状态置为time_wait<br /> 主机B接收到第四步的数据报&#xff0c;状态置为closed<br /> 主机A经过2MSL&#xff08;超时等待时间&#xff09;之后&#xff0c;状态置为closed</p> 
<p>TCP------&gt;4次挥手中的问题<br /> 1.第2步和第3步为什么不能和3次握手流程一样&#xff0c;进行合并<br /> 原因&#xff1a;第2步是TCP协议在系统内核中实现时&#xff0c;自动响应的ack<br /> 第3步时应用程序手动调用close来关闭连接的<br /> 程序在关闭连接之前&#xff0c;可能需要执行释放资源等前置操作&#xff0c;所以不能合并&#xff08;TCP协议实现时&#xff0c;没有这样进行设计&#xff09;</p> 
<p>2.第3步中&#xff0c;主机A为什么不能直接设置为closed状态<br /> 原因&#xff1a; 第4个数据报可能丢包&#xff0c;如果直接置为closed&#xff0c;丢包后无法重新发送数据。<br /> 主机B达到超时时间之后&#xff0c;会重发第三个数据报&#xff0c;然后要求主机A再次回复ack</p> 
<p>3.服务器出现大量的close_wait状态&#xff0c;是为什么&#xff1f;<br /> 服务端没有正确的关闭连接&#xff08;程序没有调用close&#xff0c;或者没有正确使用&#xff09;</p> 
<h3><a id="3IPV4IPV6_847"></a>&lt;3&gt;IPV4和IPV6的区别</h3> 
<p>1.地址不同&#xff08;IPV4 32位&#xff0c;IPV6 128位&#xff09;&#xff0c;所有地址的空间&#xff0c;数目不同</p> 
<p>2.地址分配不同&#xff08;IPV4资源不够&#xff0c;分配的话需要竞争&#xff0c;而IPV6可以给每个人都分配很多的地址&#xff09;</p> 
<p>3.寻址的方式不同&#xff1a;IPV4 通过子网掩码计算网络地址&#xff0c;而IPV6有固定的计算方式划分网络</p> 
<h3><a id="4TCPUDP_855"></a>&lt;4&gt;TCP和UDP的区别</h3> 
<p>1.TCP是有连接的可靠传输协议&#xff0c;而UDP是无连接的<br /> 2.UDP传时数据是有大小限制的&#xff0c;而TCP没有<br /> 3.UDP是面向数据报的&#xff0c;而TCP是面向数据流的。<br /> 4.TCP保证数据正确性&#xff0c;顺序性&#xff0c;而UDP不能保证.</p> 
<p>5.UDP的传输速率高于TCP</p> 
<h3><a id="5UDP_864"></a>&lt;5&gt;如何用UDP进行可靠传输</h3> 
<p>引入序列号, 保证数据顺序;<br /> 引入确认应答, 确保对端收到了数据;<br /> 引入超时重传, 如果隔一段时间没有应答, 就重发数据;</p> 
<h3><a id="6_870"></a>&lt;6&gt;正向代理和反向代理的区别</h3> 
<p>正向代理&#xff1a;要访问的服务器只知道代理服务器来访问它&#xff0c;并不知道真实的客户端是谁</p> 
<p>反向代理&#xff1a;反向代理正好相反。对于客户端来说&#xff0c;反向代理就好像目标服务器&#xff0c;客户端向反向代理发送请求&#xff0c;接着反向代理判断请求走向何处&#xff0c;隐藏了真实的服务器。</p> 
<h3><a id="7HTTPHTTPS_876"></a>&lt;7&gt;说说HTTP和HTTPS</h3> 
<p>HTTP是超文本传输协议&#xff0c;是目前应用最广泛的网络通信协议&#xff0c;也是客户端和服务端交互的一系列行为的标准</p> 
<p>http header包含三大部分&#xff0c;有General。Response Headers&#xff08;响应头&#xff09;。 Request Headers&#xff08;请求头&#xff09;。</p> 
<p>http是无连接&#xff0c;无状态的&#xff08;每次连接只处理一个请求&#xff0c;发送完数据后&#xff0c;不会记录&#xff09;</p> 
<p>而https简单讲是HTTP的安全版&#xff0c;即HTTP下加入SSL层&#xff0c;主要是来确认网站的真实性和数据传输的安全。</p> 
<p>区别&#xff1a;</p> 
<p>1.http的数据是明文传输&#xff0c;而https是加密传输&#xff0c;需要用到ca证书</p> 
<p>2.http使用80端口&#xff0c;而https是443端口</p> 
<p>3.http的速度比https要快</p> 
<h3><a id="8httpsSSL_896"></a>&lt;8&gt;https中SSL握手的过程</h3> 
<p>&lt;1&gt;.首先客户端给出协议版本号&#xff0c;一个客户端生成的随机数&#xff0c;以及支持的加密方式</p> 
<p>&lt;2&gt;.服务端确认双方使用的加密方式&#xff0c;给出数字证书&#xff0c;以及一个服务器生成的随机数</p> 
<p>&lt;3&gt;.客户端确认数字证书有效&#xff0c;然后生成一个新的随机数&#xff0c;并使用数字证书中的公钥&#xff0c;加密这个随机数&#xff0c;发个服务端</p> 
<p>&lt;4&gt;.服务端使用自己的私钥&#xff0c;获取客户端发来的随机数</p> 
<p>&lt;5&gt;.客户端和服务端根据约定的加密方式&#xff0c;使用前面的三个随机数&#xff0c;生成密钥</p> 
<h3><a id="9DNSDNSIP_908"></a>&lt;9&gt;DNS解析&#xff08;DNS找IP&#xff09;</h3> 
<p>1.当浏览器中输入www.bai.com域名时&#xff0c;操作系统会检查自己本地的hosts文件查看是否有这个网址的映射关系&#xff0c;如果有&#xff0c;直接调用</p> 
<p>2.如果没有&#xff0c;则查找本地的DNS解析器缓存&#xff0c;如果有&#xff0c;则直接返回IP</p> 
<p>3.如果没有&#xff0c;再找TCP/IP参数中设置的本地的DNS服务器&#xff0c;如果该域名包含再本地配置区域的资源中&#xff0c;则返回解析结果。</p> 
<p>4.也可能查找的域名&#xff0c;本地的DNS服务器已经缓存在网址的映射关系&#xff0c;那么直接调用这个IP</p> 
<p>5.如果本地DNS服务器也无法解析&#xff0c;会根据本地的DNS服务器是否设置转发器进行查询</p> 
<p>如果是未转发模式&#xff0c;本地DNS会把请求发给13台根DNS&#xff0c;由对应的根服务器&#xff08;例如.com&#xff09;向下找&#xff0c;最后完成解析</p> 
<p>如果是转发模式&#xff0c;那么DNS服务器会把请求一级一级向上传&#xff0c;往上找&#xff0c;直到传到根DNS。</p> 
<h3><a id="10GETPOST_924"></a>&lt;10&gt;GET和POST的区别</h3> 
<p>1.get的请求数据只能放在url中&#xff0c;post的数据&#xff0c;可以放在url和请求体</p> 
<p>2.url长度有限制&#xff0c;所有get方法请求数据不能太多&#xff0c;并且url只能传输ascli字符</p> 
<p>3.安全性将&#xff0c;post可以存放请求数据在请求体&#xff0c;相对更加安全</p> 
<p>4.GET主要是从服务端获取数据&#xff0c;而POST请求主要是将数据发送到服务端</p> 
<p>5.POST请求刷新会被重新提交&#xff0c;但Get请求不会</p> 
<h3><a id="11_936"></a>&lt;11&gt;常见的状态码</h3> 
<p>400:客户端请求语法错误&#xff0c;服务端无法理解</p> 
<p>405&#xff1a;映射找到了&#xff0c;但是客户端请求方法和服务端提供的请求方法不匹配</p> 
<p>500:服务端内部报错</p> 
<p>403&#xff1a;无权限</p> 
<h3><a id="12URL_946"></a>&lt;12&gt;输入一个URL到浏览器中&#xff0c;会发生什么</h3> 
<p>1.域名解析(DNS解析)</p> 
<p>2.发起TCP的三次握手</p> 
<p>3.建立TCP连接后发起HTTP请求&#xff08;如果浏览器存储了该域名下的Cookies&#xff0c;那么会把Cookies放入HTTP请求头里发给服务器。&#xff09;</p> 
<p>4.服务器端响应http请求&#xff0c;浏览器得到html代码</p> 
<p>5.浏览器解析html代码&#xff0c;并请求html代码中的资源</p> 
<p>6.浏览器对页面进行渲染呈现给用户</p>
                </div>
                <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-d7a94ec6ab.css" rel="stylesheet">
                <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-49037e4d27.css" rel="stylesheet">
        </div>
    </article>
</div>
<div class="more-toolbox-new" id="toolBarBox">
    <div class="left-toolbox">
        <div class="toolbox-left">
            <div class="profile-box"><a class="profile-href" target="_blank" href="https://blog.csdn.net/qq_45704528"><img class="profile-img" src="https://profile.csdnimg.cn/3/E/A/3_qq_45704528"><span class="profile-name">Serendipity  sn</span></a></div>
            <div class="profile-attend">
                    <a class="tool-attend tool-bt-button tool-bt-attend" href="javascript:;" data-report-view='{"mod":"1592215036_002","spm":"1001.2101.3001.4232","extend1":"关注"}'>关注</a>
                <a class="tool-item-follow active-animation" style="display:none;">关注</a>
            </div>
        </div>
        <div class="toolbox-middle">
        <ul class="toolbox-list">
            <li class="tool-item tool-item-size tool-active is-like" id="is-like">
            <a class="tool-item-href">
                <img style="display:none;" id="is-like-imgactive-animation-like" class="animation-dom active-animation" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarThumbUpactive.png" alt="">
                <img class="isactive" style="display:none" id="is-like-imgactive" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newHeart1Active.png" alt="">
                <img class="isdefault" style="display:block" id="is-like-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newHeart1White.png" alt="">  
                <span id="spanCount" class="count ">
                        2061
                </span>
            </a>
            <div class="tool-hover-tip"><span class="text space">点赞</span></div>
            </li>
            <li class="tool-item tool-item-size tool-active tool-item-comment">
            <a class="tool-item-href" href="#commentBox">
                <img class="isdefault" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCommentWhite.png" alt="">
                <span class="count">
                    137
                </span>
            </a>
            <div class="tool-hover-tip"><span class="text space">评论</span></div>
            </li>
            <li class="tool-item tool-item-size tool-active is-collection ">
            <a class="tool-item-href" href="javascript:;" data-report-click='{"mod":"popu_824","spm":"1001.2101.3001.4130","ab":"new"}'>
                <img style="display:none" id="is-collection-img-collection" class="animation-dom active-animation" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarCollectionActive.png" alt="">
                <img class="isdefault" id="is-collection-img" style="display:block" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCollectWhite.png" alt="">
                <img class="isactive" id="is-collection-imgactive" style="display:none" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCollectActive.png" alt="">
                <span class="count get-collection " id="get-collection">
                    11170
                </span>
            </a>
            <div class="tool-hover-tip"><span class="text space">收藏</span></div>
            </li>
            <li class="tool-item tool-active">
                <a class="" href="javascript:;">
                    <img class="company active" id="health-companies" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newHealthCompanies1Active.gif" alt="一键三连">
                </a>
                <div class="tool-hover-tip three-click"><span class="text">一键三连</span></div>
            </li>
            <li class="tool-item tool-item-bar">
            </li>
            <li class="tool-item tool-item-size tool-active tool-QRcode" id="tool-share">
                <a class="tool-item-href" href="javascript:;" data-report-click='{"mod":"1582594662_002","spm":"1001.2101.3001.4129","ab":"new"}'>
                    <img class="isdefault" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newShareWhite.png" alt="">
                </a>
                <div class="QRcode" id="tool-QRcode">
                    <p class="title">
                    扫一扫，分享海报
                    </p>
                    <div id='shareCode'></div>
                </div>
            </li>
        </ul>
        </div>
        <div class="toolbox-right">
                <div class="tool-directory">
                    <a class="bt-columnlist-show"
                    data-id="11008652"
                    data-free="true"
                    data-subscribe="false"
                    data-title="Java从入门到精通"
                    data-img="https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224"
                    data-url="https://blog.csdn.net/qq_45704528/category_11008652.html"
                    data-sum="9"
                    data-people="64"
                    data-price="0"
                    data-oldprice="0"
                    data-join="false"
                    data-studyvip="false"
                    data-studysubscribe="false"
                    data-report-view='{"spm":"1001.2101.3001.6334","extend1":"专栏目录"}'
                    data-report-click='{"spm":"1001.2101.3001.6334","extend1":"专栏目录"}'
                    >专栏目录</a>
                </div>
        </div>
    </div>  
</div>
<script type=text/javascript crossorigin src="https://csdnimg.cn/release/phoenix/production/qrcode-7c90a92189.min.js"></script>
<script src="//g.csdnimg.cn/??sharewx/1.2.1/sharewx.js" type="text/javascript"></script>
<script type="text/javascript" crossorigin src="https://g.csdnimg.cn/user-login/3.0.1/user-login.js"></script>
<script type="text/javascript" crossorigin src="https://g.csdnimg.cn/collection-box/2.0.6/collection-box.js"></script>
                <div class="first-recommend-box recommend-box">
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/Javawithme/article/details/120325851"  data-report-view='{"ab":"new","mod":"popu_871","extra":"{\"utm_medium\":\"distribute.pc_relevant_t0.587853\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","index":"1","style":"text_1","strategy":"32_587853_RCMD","dest":"https://blog.csdn.net/Javawithme/article/details/120325851"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/Javawithme/article/details/120325851" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_871","extra":"{\"utm_medium\":\"distribute.pc_relevant_t0.587853\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","index":"1","style":"text_1","strategy":"32_587853_RCMD","dest":"https://blog.csdn.net/Javawithme/article/details/120325851"}'  data-report-query='utm_medium=distribute.pc_relevant_t0.587853&depth_1-utm_source=distribute.pc_relevant_t0.587853'>
					<div class="left ellipsis-online ellipsis-online-1">谁说专科学历找不到java工作？自学java，第一份工作13k</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/Javawithme" target="_blank"><span class="blog-title">Javawithme的博客</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">09-16</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					592
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/Javawithme/article/details/120325851" target="_blank"  data-report-click='{"ab":"new","mod":"popu_871","extra":"{\"utm_medium\":\"distribute.pc_relevant_t0.587853\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","index":"1","style":"text_1","strategy":"32_587853_RCMD","dest":"https://blog.csdn.net/Javawithme/article/details/120325851"}'  data-report-query='utm_medium=distribute.pc_relevant_t0.587853&depth_1-utm_source=distribute.pc_relevant_t0.587853'>
				<div class="desc ellipsis-online ellipsis-online-1">现在经常会在网上看到说Java饱和了，专科找不到工作，不是科班找不到工作之类的话。作为已经成功转行的我，现在明白了一个道理：那些顺利转行成功的，不会去网上说自己转行有多么容易；但是那些转行不成功的，就会到网上宣传行业饱和了，专科找不到工作。现在学的人确实越来越多了，但是学的好，达到公司招聘标准的却没有几个。这是一个技术行业，最终能不能找到工作，找到什么样的工作主要还是看技术学的怎么样，学历，专业对口只是一个人的加分项，如果不是进大公司，只是选择一些中小公司的话，公司主要看重的还是这个人的实际</div>
			</a>
		</div>
	</div>
</div>
                </div>
            <div class="second-recommend-box recommend-box">
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/weixin_30340775/article/details/96401093"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"1","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_30340775/article/details/96401093"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/weixin_30340775/article/details/96401093" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"1","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_30340775/article/details/96401093"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">[转载]<em>面试官</em>你也伤不起啊！</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/weixin_30340775" target="_blank"><span class="blog-title">weixin_30340775的博客</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">08-11</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					1250
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/weixin_30340775/article/details/96401093" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"1","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_30340775/article/details/96401093"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">转自：http://www.mikeshi.me/wordpress/?p=239

另附《应聘者你也伤不起啊！》：http://bulaoge.net/topic.blg?dmn=llbgurs&amp;tid=2030553#Content

呵呵，不要尽顾着笑，大家还是互相理解下！




好，正文：

招聘的人你也伤不起啊伤不起！！！

HR那里一...</div>
			</a>
		</div>
	</div>
</div>
            </div>
<a id="commentBox" name="commentBox"></a>
<div class="comment-box">
	<div class="comment-edit-box d-flex">
		<a id="commentsedit"></a>
		<div class="user-img">
			<a href="javascript:void(0);" >
				<img class="show_loginbox" src="https://g.csdnimg.cn/static/user-img/anonymous-User-img.png">
			</a>
		</div>
		<form id="commentform">
			<img class="comment-sofa-flag" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentFlag@2x.png">
      <textarea class="comment-content" name="comment_content" id="comment_content" placeholder="优质评论可以帮助作者获得更高权重" maxlength="1000"></textarea>
			<div class="comment-emoticon"><img class="comment-emoticon-img" data-url="https://csdnimg.cn/release/blogv2/dist/pc/img/" src="https://csdnimg.cn/release/blogv2/dist/pc/img/emoticon.png" alt="表情包"></div> 
      <span class="comment-emoticon-tip">插入表情</span>
      <div class="comment-emoticon-box">
        <div class="comment-emoticon-img-box"></div>
			</div>
      <div class="opt-box">
				<div id="ubbtools" class="add_code">
					<a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>
				</div>
				<input type="hidden" id="comment_replyId" name="comment_replyId">
				<input type="hidden" id="article_id" name="article_id" value="118635841">
				<input type="hidden" id="comment_userId" name="comment_userId" value="">
				<input type="hidden" id="commentId" name="commentId" value="">
				<div class="dropdown" id="myDrap">
					<a class="dropdown-face d-flex align-items-center" data-toggle="dropdown" role="button"
						aria-haspopup="true" aria-expanded="false">
						<div class="txt-selected text-truncate">添加代码片</div>
						<svg class="icon d-block" width="200px" height="100.00px" viewBox="0 0 2048 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path  d="M597.33333292 298.666667h853.333334L1023.99999992 725.333333 597.33333292 298.666667z"  /></svg>
					</a>
					<ul class="dropdown-menu" id="commentCode" aria-labelledby="drop4">
						<li><a data-code="html">HTML/XML</a></li>
						<li><a data-code="objc">objective-c</a></li>
						<li><a data-code="ruby">Ruby</a></li>
						<li><a data-code="php">PHP</a></li>
						<li><a data-code="csharp">C</a></li>
						<li><a data-code="cpp">C++</a></li>
						<li><a data-code="javascript">JavaScript</a></li>
						<li><a data-code="python">Python</a></li>
						<li><a data-code="java">Java</a></li>
						<li><a data-code="css">CSS</a></li>
						<li><a data-code="sql">SQL</a></li>
						<li><a data-code="plain">其它</a></li>
					</ul>
				</div>
				<div class="right-box" id="rightBox" data-type="2">
							<span id="tip_comment" class="tip">还能输入<em>1000</em>个字符</span>
							<a data-report-click='{"mod":"1582594662_003","spm":"1001.2101.3001.4227","ab":"new"}'><input type="submit"
									class="btn btn-sm btn-comment" value="发表评论"></a>
				</div>
			</div>
		</form>
		<input type="button" class="bt-comment-show" value="评论">
	</div>
	<div class="comment-list-container">
		<a id="comments"></a>
		<div class="comment-list-box">
		</div>
		<div id="commentPage" class="pagination-box d-none"></div>
		<div class="opt-box text-center">
			<div class="btn btn-sm btn-link-blue" id="btnMoreComment"></div>
		</div>
	</div>
</div>            <div class="recommend-box insert-baidu-box">
                <div class="recommend-item-box clearfix" style="display:none"></div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/Java_bx/article/details/118999504"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-2.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"2","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/Java_bx/article/details/118999504"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/Java_bx/article/details/118999504" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-2.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"2","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/Java_bx/article/details/118999504"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">渣硕试水字节跳动，123面直接拿到offer，<em>面试官</em><em>都</em><em>震惊</em>，你这<em>基础</em>可以啊！</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/Java_bx" target="_blank"><span class="blog-title">Java_bx的博客</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">07-22</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					2095
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/Java_bx/article/details/118999504" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-2.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"2","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/Java_bx/article/details/118999504"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">背景
在国外做了两年Java企业系统开发，今年夏天决定回国发展。回来之后就有点后悔，南方的夏天简直是火炉！

好在很快接到了字节HR的面试邀约电话，一二三面同一天完成，效率不错，共历时三小时左右。大家可以往下看看，如果是你来面试，能打多少分？面试结束后我对问题进行了梳理总结，在下文中会提到。
第一轮面试 ： 一小时

自我介绍/项目介绍
接口和抽象类的区别
用的Java哪个版本，现在最新版本是哪个
线程的状态、状态转移条件、创建方式、和进程的区别
聊一聊JVM垃圾回收
Linux常用命令的看法
Docker</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/weixin_34194379/article/details/91394340"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-3.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"3","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_34194379/article/details/91394340"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/weixin_34194379/article/details/91394340" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-3.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"3","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_34194379/article/details/91394340"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">作为<em>面试官</em>的一点点感悟，谈谈技术人的成长之路</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/weixin_34194379" target="_blank"><span class="blog-title">weixin_34194379的博客</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">03-31</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					160
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/weixin_34194379/article/details/91394340" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-3.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"3","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_34194379/article/details/91394340"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">因为工作上的原因，做过几次<em>面试官</em>，面试的同学有应届生，也有工作3-5年的老技术人。最近也频繁作为<em>面试官</em>帮助筛选候选人，中间有很多值得深思的东西，我记录了下来分享给大家。以下观点仅为个人观点，不代表任何公司的立场。      01面试不是简单的你问我答一般来讲，作为<em>面试官</em>和候选人进行沟通的第一个问题是一般是自我介绍，整个自我介绍的情况应该控制在2分钟左右，阐述自己的教育背景，项目经历，用到的主要技术...</div>
			</a>
		</div>
	</div>
</div>
		<dl id="recommend-item-box-tow" class="recommend-item-box type_blog clearfix">
			
		</dl>
<div class="recommend-item-box type_blog clearfix" data-url="https://cxuan.blog.csdn.net/article/details/110366680"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-4.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"4","strategy":"2~default~CTRLIST~default","dest":"https://cxuan.blog.csdn.net/article/details/110366680"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://cxuan.blog.csdn.net/article/details/110366680" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-4.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"4","strategy":"2~default~CTRLIST~default","dest":"https://cxuan.blog.csdn.net/article/details/110366680"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">40 张图带你搞懂 TCP 和 UDP</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/qq_36894974" target="_blank"><span class="blog-title">程序员cxuan的个人主页</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">11-30</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					948
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://cxuan.blog.csdn.net/article/details/110366680" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-4.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"4","strategy":"2~default~CTRLIST~default","dest":"https://cxuan.blog.csdn.net/article/details/110366680"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">前言
欢迎阅读「程序员cxuan」 的文章，从今往后，你就是我的读者了。
我的 github bestJavaer 已经收录此文章
希望你可以给我一个 star 哦！
这一篇文章是计算机<em>网络</em>连载文章的第四篇，历史文章请阅读
一不小心画了 24 张图剖析计网应用层协议！
TCP/IP <em>基础</em>知识
计算机<em>网络</em><em>基础</em>知识总结
下面开始本篇文章。
运输层位于应用层和<em>网络</em>层之间，是 OSI 分层体系中的第四层，同时也是<em>网络</em>体系结构的重要部分。运输层主要负责<em>网络</em>上的端到端通信。

运输层为运行在不同主机上的应用程序之间的通</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/javageektech/article/details/102513022"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-5.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"5","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/javageektech/article/details/102513022"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/javageektech/article/details/102513022" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-5.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"5","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/javageektech/article/details/102513022"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-5.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">谈谈设计模式之代理模式</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/javageektech" target="_blank"><span class="blog-title">Java极客技术</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">10-11</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					161
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/javageektech/article/details/102513022" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-5.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"5","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/javageektech/article/details/102513022"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-5.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">看了这篇文章，你会对静态代理模式，JDK 动态代理模式和 CGLIB 动态代理模式有个很清晰的认识。01、简介什么是代理模式代理模式也称为委托模式，属于结构型模式之一。在...</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/qq_36972826/article/details/118640272"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-6.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"6","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/qq_36972826/article/details/118640272"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/qq_36972826/article/details/118640272" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-6.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"6","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/qq_36972826/article/details/118640272"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-6.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-6.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">不是吧阿sir，你这Java<em>基础</em>也太熟了吧，<em>震惊</em><em>面试官</em>第三年！</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/qq_36972826" target="_blank"><span class="blog-title">爱分享的板栗老哥</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">07-10</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					148
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/qq_36972826/article/details/118640272" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-6.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"6","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/qq_36972826/article/details/118640272"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-6.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-6.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">大家好啊，这是一期究极全的Java全套复习流程，这是第三期Java<em>基础</em>篇，朱茵女神镇楼嘿嘿嘿。。。

Java<em>基础</em>篇
1、Java面向对象特性介绍、与C++区别
白嫖资料
特性：封装、继承、多态
​ 封装：对抽象的事物抽象化成一个对象，并对其对象的属性私有化，同时提供一些能被外界访问属性的方法，这样一个对象便有存在的意义了；
​ 继承：在已存在类的<em>基础</em>上，建立新类并对其增加新的数据域或功能，同时该类可以复用父类的属性与功能，这种思路可以称为继承；通过使用继承能够方便地复用旧代码，减少不必要的代码量；
​ 多</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_ask clearfix" data-url="https://ask.csdn.net/questions/7508288"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-ask-2~default~essearch~vector-7.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"7","strategy":"2~default~essearch~vector","dest":"https://ask.csdn.net/questions/7508288"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://ask.csdn.net/questions/7508288" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-ask-2~default~essearch~vector-7.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"7","strategy":"2~default~essearch~vector","dest":"https://ask.csdn.net/questions/7508288"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-ask-2%7Edefault%7Eessearch%7Evector-7.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-ask-2%7Edefault%7Eessearch%7Evector-7.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">这咋做啊，<em>都</em>不知道咋开头啊！！</div>
					<div class="tag">最新发布</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info display-flex">
					<span class="info-block">09-13</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://ask.csdn.net/questions/7508288" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-ask-2~default~essearch~vector-7.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"7","strategy":"2~default~essearch~vector","dest":"https://ask.csdn.net/questions/7508288"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-ask-2%7Edefault%7Eessearch%7Evector-7.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-ask-2%7Edefault%7Eessearch%7Evector-7.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1"></div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/m0_58395003/article/details/119463373"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-8.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"8","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/m0_58395003/article/details/119463373"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/m0_58395003/article/details/119463373" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-8.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"8","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/m0_58395003/article/details/119463373"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-8.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-8.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1"><em>面试官</em><em>都</em>拜服的，软件测试面试题之Mysql<em>基础</em>！</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/m0_58395003" target="_blank"><span class="blog-title">程序员碉堡了的博客</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">08-06</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					1138
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/m0_58395003/article/details/119463373" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-8.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"8","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/m0_58395003/article/details/119463373"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-8.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-8.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">Mysql  <em>基础</em>知识点击领取学习资料
1. 什么是数据库？

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库

2. 什么是关系型数据库，主键，外键，索引分别是什么？

关系型数据库是由多张能互相联接的二维行列表格组成的数据库 主关键字(primary
key)是表中的一个或多个字段，它的值用于唯一地标识表中的某一条记录
外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表，具有此外键的表被称为主表的从表。外键又称作外关键字
在关系数据库中，索引是一种单独的、</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://alltodata.blog.csdn.net/article/details/112130781"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-9.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"9","strategy":"2~default~essearch~vector","dest":"https://alltodata.blog.csdn.net/article/details/112130781"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://alltodata.blog.csdn.net/article/details/112130781" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-9.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"9","strategy":"2~default~essearch~vector","dest":"https://alltodata.blog.csdn.net/article/details/112130781"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-9.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-9.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">同学，你这简历上没项目啊！</div>
					<div class="tag">热门推荐</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/zhuxiao5" target="_blank"><span class="blog-title">zhuxiao5的博客</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">01-02</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					1万+
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://alltodata.blog.csdn.net/article/details/112130781" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-9.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"9","strategy":"2~default~essearch~vector","dest":"https://alltodata.blog.csdn.net/article/details/112130781"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-9.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-9.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">作者：朱小五大家好，我是小五同学，刚毕业或者转行去求职数据分析师的时候，你遭遇过这样的尴尬怪圈吗？比方说下面的jd就很真实：今天小五就跟大家聊聊，面试数据分析师时，如何彻底摆脱拿着单薄的...</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/X8i0Bev/article/details/102948622"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-10.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"10","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/X8i0Bev/article/details/102948622"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/X8i0Bev/article/details/102948622" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-10.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"10","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/X8i0Bev/article/details/102948622"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-10.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-10.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1"><em>面试官</em>：连多线程<em>都</em>没有用上，你这3年<em>都</em>做了些什么项目啊</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/X8i0Bev" target="_blank"><span class="blog-title">爱开发</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">11-06</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					1877
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/X8i0Bev/article/details/102948622" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-10.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"10","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/X8i0Bev/article/details/102948622"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-10.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-10.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">点击上面&uarr;「爱开发」关注我们每晚10点，分享软件开发资源、社交电商资源张工毕业3年了，一直在做java开发，在这3年里，张工做过不少项目，最近到某互联网公司面试，做了笔试题，<em>面试官</em>看了觉得还不错，于是就让他手写简单的多线程的例子，张工写不出来，<em>面试官</em>说：&ldquo;你工作3年了，连多线程<em>都</em>没有用上，这3年<em>都</em>做了些什么项目啊。&rdquo;张工一脸的无助，不过确实不应该，多线程这个知识点，是需要掌握好才对。3年了，虽然项...</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/weixin_34097242/article/details/90334780"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-11.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"11","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_34097242/article/details/90334780"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/weixin_34097242/article/details/90334780" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-11.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"11","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_34097242/article/details/90334780"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-11.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-11.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">什么是MTU？为什么MTU值普遍<em>都</em>是1500？</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/weixin_34097242" target="_blank"><span class="blog-title">weixin_34097242的博客</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">10-10</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					5602
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/weixin_34097242/article/details/90334780" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-11.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"11","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_34097242/article/details/90334780"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-11.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-11.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">大学那会我玩魔兽世界，我的职业是法师，然后经常有朋友找我我带小号，带小号的方式是冲到血色副本里面把所有怪拉到一起，然后一起用AOE技能瞬间杀掉，在学校玩的时候没什么问题，但是放假在家的时候，我发现每次我拉好怪，放技能AOE的那个瞬间，很大概率会掉线，也不是网速问题，当时很多人也遇到同样的问题，看到个帖子说，把自己的MTU改成1480就行了，当时也不知道啥...</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/renfujiang/article/details/84594182"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-12.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"12","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/renfujiang/article/details/84594182"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/renfujiang/article/details/84594182" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-12.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"12","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/renfujiang/article/details/84594182"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-12.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-12.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">什么是udp？</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/renfujiang" target="_blank"><span class="blog-title">renfujiang的专栏</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">11-29</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					6732
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/renfujiang/article/details/84594182" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-12.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"12","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/renfujiang/article/details/84594182"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-12.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-12.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">UDP是什么？

UDP 的英文单词是User Datagram Protocol，缩写为UDP

UDP是一种用户数据报协议，又成为用户数据报文协议，是一种报文的协议，不是面向连接的协议，TCP是基于连接的

是一个简单的面向数据报的传输层协议，正式规范为RFC 768

用户数据协议、非连接的协议，UDP的发起和接受是不需要经过连接的

仅仅只需要发送在对应端口上进行监听接受即可，不需要两个客...</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/weixin_40087578/article/details/89082186"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-13.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"13","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_40087578/article/details/89082186"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/weixin_40087578/article/details/89082186" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-13.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"13","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_40087578/article/details/89082186"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-13.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-13.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">计算机<em>网络</em><em>基础</em>知识点+面试</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/weixin_40087578" target="_blank"><span class="blog-title">不忘初心不动摇</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">04-11</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					7181
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/weixin_40087578/article/details/89082186" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-13.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"13","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/weixin_40087578/article/details/89082186"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-13.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-13.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">目录



一、计算机<em>网络</em>五层体系结构

（1）概述

五层体系结构 由 应用层，运输层，<em>网络</em>层，数据链路层，物理层组成。

（2）物理层

（3）数据链路层

（4）<em>网络</em>层

（5）运输层

（6）应用层

（7）一个例子

二、TCP协议的三次握手和四次挥手

（1）三次握手

为什么要三次握手

为什么要传回 SYN

传了 SYN,为啥还要传 ACK

（2）四次挥手

为什么要四次挥手...</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/free_ant/article/details/111410042"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-14.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"14","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/free_ant/article/details/111410042"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/free_ant/article/details/111410042" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-14.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"14","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/free_ant/article/details/111410042"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-14.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-14.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">Springboot+Sharding-JDBC分库分表实践二之分表策略</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/free_ant" target="_blank"><span class="blog-title">5none</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">12-20</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					300
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/free_ant/article/details/111410042" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-14.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"14","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/free_ant/article/details/111410042"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-14.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-14.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">文章目录前言一、分片策略是什么？二、使用1.行表达式分片策略2.标准分片策略配置UserShardingAlgorithm3.复合分片策略配置ComplexShardingAlgorithm总结


前言
上篇文章主要使用SpringBoot+Mybatis-Plus+Sharding-JDBC实现了简单的分表，本篇来讲下Sharding-JDBC提供的几种分表策略，通过使用不同的策略可以实现各种复杂的分表场景
一、分片策略是什么？
包含分片键和分片算法，由于分片算法的独立性，将其独立抽离。真正可用于分片操</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/kof820/article/details/677448"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-15.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"15","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/kof820/article/details/677448"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/kof820/article/details/677448" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-15.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"15","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/kof820/article/details/677448"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-15.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-15.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">TCP/IP协议介绍 </div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/kof820" target="_blank"><span class="blog-title">BILL-博客-LLIB</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">04-25</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					1613
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/kof820/article/details/677448" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-15.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"15","strategy":"2~default~CTRLIST~default","dest":"https://blog.csdn.net/kof820/article/details/677448"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-15.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-15.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">TCP/IP的通讯协议 这部分简要介绍一下TCP/IP的内部结构，为讨论与互联网有关的安全问题打下<em>基础</em>。TCP/IP协议组之所以流行，部分原因是因为它可以用在各种各样的信道和底层协议（例如T1和X.25、以太网以及RS-232串行接口）之上。确切地说，TCP/IP协议是一组包括TCP协议和IP协议，UDP（User Datagram Protocol）协议、ICMP（Internet Contro</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/qq_14958051/article/details/105909845"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-16.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"16","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/qq_14958051/article/details/105909845"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/qq_14958051/article/details/105909845" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-16.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"16","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/qq_14958051/article/details/105909845"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-16.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-16.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">100道多线程面试题,和<em>面试官</em>扯皮没问题了！</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/qq_14958051" target="_blank"><span class="blog-title">qq_14958051的博客</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">05-04</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					5519
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/qq_14958051/article/details/105909845" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-16.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"16","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/qq_14958051/article/details/105909845"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-16.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-16.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">文章目录1.什么是进程?2.什么是线程？3.线程的实现方式?4.Thread 类中的start() 和 run() 方法有什么区别?5.线程NEW状态6.线程RUNNABLE状态7.线程的RUNNING状态8.线程的BLOCKED状态9.线程的TERMINATED状态10.线程状态转化图11.i--与System.out.println()的异常12.如何知道代码段被哪个线程调用？13.线程活动状...</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/oHuaChuan/article/details/119845826"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-17.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"17","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/oHuaChuan/article/details/119845826"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/oHuaChuan/article/details/119845826" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-17.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"17","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/oHuaChuan/article/details/119845826"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-17.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-17.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">2021CSP报名，你想知道的，<em>都</em>在这！</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/oHuaChuan" target="_blank"><span class="blog-title">oHuaChuan的博客</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">08-21</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					379
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/oHuaChuan/article/details/119845826" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-17.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"17","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/oHuaChuan/article/details/119845826"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-17.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-17.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">小伙伴们，今年CSP认证报名开始了，认证考察C、C++编程能力，综合运用算法和数据结构知识解答实际问题，很多地方中考科技特长生会参考此项成绩，需要提前准备的同学，请先准备语言学习，历年真题获取，也可扫文后二维码获取，现将认证流程分享下来。


一、认证形式：

第一轮分两组CSP-S1、CSP-J1进行，第一轮成绩优异者进入第二轮CSP-S2、CSP-J2。认证方式为现场认证（非线上认证）。

二、认证方式：

1.参加CSP-J/S第二轮必须先参加相应的第一轮认证，达到一定的分数者方可具备参加第二轮的资.</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/m0_48795607/article/details/111386300"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-18.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"18","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/m0_48795607/article/details/111386300"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/m0_48795607/article/details/111386300" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-18.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"18","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/m0_48795607/article/details/111386300"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-18.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-18.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1">这70道算法题你<em>都</em>会的话，可以直接去字节跳动了！</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/m0_48795607" target="_blank"><span class="blog-title">程序媛小琬的博客</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">12-18</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					515
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/m0_48795607/article/details/111386300" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-18.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"18","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/m0_48795607/article/details/111386300"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-18.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-18.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">前言

知识的广度来自知识的深度，学习如果不成体系那是多可怕的一件事儿，希望我们在未来的学习道路上坚守初心，不要给自己留下遗憾，以自己喜欢的方式生活，做自己喜欢做的事，做一个独一无二的自己！

1.说一下什么是二分法？使用二分法时需要注意什么？如何用代码实现？
2.什么是斐波那契数列？用代码如何实现？
3.有一对兔子，从出生后第3个月起每个月<em>都</em>生一对兔子，小兔子长到第四个月后每个月又生一对兔子，假如兔子<em>都</em>不死，问每个月的兔子总数为多少？
4.什么是冒泡排序？用代码如何实现？
5.什么是选择排序？用代码如何实</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/qq_36903042/article/details/104865086"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-19.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"19","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/qq_36903042/article/details/104865086"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/qq_36903042/article/details/104865086" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-19.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"19","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/qq_36903042/article/details/104865086"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-19.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-19.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1"><em>面试官</em>，求求你，别再问我<em>网络</em>分层了！！！</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/qq_36903042" target="_blank"><span class="blog-title">小鹿动画学编程</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">03-14</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					1059
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/qq_36903042/article/details/104865086" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-19.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"19","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/qq_36903042/article/details/104865086"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-19.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-19.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">上一篇大体给小伙伴介绍一下<em>网络</em>分层的基本概念，以及每层的大体的功能，那么今天我们来看看每层具体的功能是什么？层与层之间又是怎么进行封装关联的？

上一篇：面试：你真的懂<em>网络</em>分层模型吗？（上）

写在前边
上一篇主要分享了<em>网络</em>分层的基本概念，为什么要进行<em>网络</em>分层？又是如何进行分层？每一层的基本功能是什么？而且对于每一层的的功能细节方面，比如数据包的组成以及每层包含的一些协议的使用<em>都</em>没有细说，那么这一...</div>
			</a>
		</div>
	</div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/caohongshuang/article/details/100095747"  data-report-view='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-20.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"20","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/caohongshuang/article/details/100095747"}'>
	<div class="content-box">
		<div class="content-blog display-flex">
			<div class="title-box">
				<a href="https://blog.csdn.net/caohongshuang/article/details/100095747" class="tit" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-20.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"20","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/caohongshuang/article/details/100095747"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-20.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-20.no_search_link'>
					<div class="left ellipsis-online ellipsis-online-1"><em>震惊</em>，ES与MySQL竟可以这样亲密无间！</div>
				</a>
			</div>
			<div class="info-box display-flex">
				<div class="info">
					<a href="https://blog.csdn.net/caohongshuang" target="_blank"><span class="blog-title">曹洪双</span></a>
				</div>
				<div class="info display-flex">
					<span class="info-block time">08-27</span>
					<span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					6446
					</span>
				</div>
			</div>
		</div>
		<div class="desc-box">
			<a href="https://blog.csdn.net/caohongshuang/article/details/100095747" target="_blank"  data-report-click='{"ab":"new","mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~essearch~vector-20.no_search_link\",\"dist_request_id\":\"1631862605842_17250\"}","dist_request_id":"1631862605842_17250","ab_strategy":"ctrlist","index":"20","strategy":"2~default~essearch~vector","dest":"https://blog.csdn.net/caohongshuang/article/details/100095747"}'  data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-20.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Eessearch%7Evector-20.no_search_link'>
				<div class="desc ellipsis-online ellipsis-online-1">前言

MySQL是目前最受欢迎的关系型数据库之一，其方便的接口和灵活的应用方式极大地提高了程序猿们开发效率。但是，玩儿数据库的宝宝<em>都</em>不可避免地会遇到一个问题，当数据库中的记录不断增多，其查询速度会变慢，尤其是对中文的模糊查询（建立普通索引完全不起作用）。虽然mysql5.7版本以上支持中文的全文索引，依然感觉很鸡肋。那mysql自身搞不定了，可以找帮手啊。ES(Elasticsearch)是目前...</div>
			</a>
		</div>
	</div>
</div>
            </div>
            <div class="template-box">
                <span>©️2020 CSDN</span>
                <span>皮肤主题: 像素格子</span>
                <span> 设计师:CSDN官方博客</span>
                <span>
                    <a href="https://blog.csdn.net/" class="back-home c-blue c-blue-hover c-blue-focus">返回首页</a>
                </span>
            </div>
<div class="blog-footer-bottom" style="margin-top:10px;"></div>
<script src="https://g.csdnimg.cn/common/csdn-footer/csdn-footer.js" data-isfootertrack="false" type="text/javascript"></script>
<script type="text/javascript">
    window.csdn.csdnFooter.options = {
        el: '.blog-footer-bottom',
        type: 2
    }
</script>        </main>
<aside class="blog_container_aside">
	<div id="asideProfile" class="aside-box">
    <div class="profile-intro d-flex">
        <div class="avatar-box d-flex justify-content-center flex-column">
            <a href="https://blog.csdn.net/qq_45704528" data-report-click='{"mod":"popu_379","spm":"1001.2101.3001.4121","dest":"https://blog.csdn.net/qq_45704528","ab":"new"}'>
                <img src="https://profile.csdnimg.cn/3/E/A/3_qq_45704528" class="avatar_pic">
            </a>
        </div>
        <div class="user-info d-flex flex-column profile-intro-name-box">
            <div class="profile-intro-name-boxTop">
                <a href="https://blog.csdn.net/qq_45704528" class="" id="uid" title="Serendipity  sn" data-report-click='{"mod":"popu_379","spm":"1001.2101.3001.4122","dest":"https://blog.csdn.net/qq_45704528","ab":"new"}'>
                    <span class="name " username="qq_45704528">Serendipity  sn</span>
                </a>
                <span>
                </span>
                <span class="flag expert-blog">
                <span class="bubble">CSDN认证博客专家</span>
                </span>
                <span class="flag company-blog">
                <span class="bubble">CSDN认证企业博客</span>
                </span>
            </div>
            <div class="profile-intro-name-boxFooter">
                <span class="personal-home-page personal-home-years">码龄2年</span>
                    <span class="personal-home-page">
                    <a class="personal-home-certification" href="https://i.csdn.net/#/uc/profile?utm_source=14998968" target="_blank" title="暂无认证">
                    <img src="https://csdnimg.cn/identity/nocErtification.png" alt="">
                    暂无认证
                    </a>
                    </span>
            </div>
        </div>
    </div>
    <div class="data-info d-flex item-tiling">
        <dl class="text-center" title="55">
            <a href="https://blog.csdn.net/qq_45704528" data-report-click='{"mod":"1598321000_001","spm":"1001.2101.3001.4310"}' data-report-query="t=1">  
                <dt><span class="count">55</span></dt>
                <dd class="font">原创</dd>
            </a>
        </dl>
        <dl class="text-center" data-report-click='{"mod":"1598321000_002","spm":"1001.2101.3001.4311"}' title="154">
            <a href="https://blog.csdn.net/rank/list/weekly" target="_blank">
                <dt><span class="count">154</span></dt>
                <dd class="font">周排名</dd>
            </a>
        </dl>
        <dl class="text-center" title="5288">
            <a href="https://blog.csdn.net/rank/list/total" data-report-click='{"mod":"1598321000_003","spm":"1001.2101.3001.4312"}' target="_blank">
                <dt><span class="count">5288</span></dt>
                <dd class="font">总排名</dd>
            </a>
        </dl>
        <dl class="text-center" style="min-width:58px" title="238909">  
            <dt><span class="count">23万+</span></dt>
            <dd>访问</dd>
        </dl>
        <dl class="text-center" title="5级,点击查看等级说明">
            <dt><a href="https://blog.csdn.net/blogdevteam/article/details/103478461" target="_blank">
                <img class="level" src="https://csdnimg.cn/identity/blog5.png">
            </a>
            </dt>
            <dd>等级</dd>
        </dl>
    </div>
    <div class="item-rank"></div>
    <div class="data-info d-flex item-tiling">
        <dl class="text-center" title="4349">
            <dt><span class="count">4349</span></dt>
            <dd>积分</dd>
        </dl>
         <dl class="text-center" id="fanBox" title="9074">
            <dt><span class="count" id="fan">9074</span></dt>
            <dd>粉丝</dd>
        </dl>
        <dl class="text-center" title="2756">
            <dt><span class="count">2756</span></dt>
            <dd>获赞</dd>
        </dl>
        <dl class="text-center" title="291">
            <dt><span class="count">291</span></dt>
            <dd>评论</dd>
        </dl>
        <dl class="text-center" title="15538">
            <dt><span class="count">1万+</span></dt>
            <dd>收藏</dd>
        </dl>
    </div>
    <div class="aside-box-footer" data-report-view='{"spm":"3001.4296"}'>
        <div class="badge-box d-flex">
            <div class="badge d-flex">
                <div class="icon-badge" title="阅读者勋章Lv3">
                    <div class="mouse-box">
                        <img class="medal-img" data-report-click='{"spm":"3001.4296"}' src="https://csdnimg.cn/medal/yuedu30@240.png" alt="阅读者勋章Lv3">
                    </div>
                </div>
                <div class="icon-badge" title="持之以恒">
                    <div class="mouse-box">
                        <img class="medal-img" data-report-click='{"spm":"3001.4296"}' src="https://csdnimg.cn/medal/chizhiyiheng@240.png" alt="持之以恒">
                    </div>
                </div>
                <div class="icon-badge" title="勤写标兵Lv4">
                    <div class="mouse-box">
                        <img class="medal-img" data-report-click='{"spm":"3001.4296"}' src="https://csdnimg.cn/medal/qixiebiaobing4@240.png" alt="勤写标兵Lv4">
                    </div>
                </div>
                <div class="icon-badge" title="分享达人">
                    <div class="mouse-box">
                        <img class="medal-img" data-report-click='{"spm":"3001.4296"}' src="https://csdnimg.cn/medal/fenxiangdaren@240.png" alt="分享达人">
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="profile-intro-name-boxOpration">
        <div class="opt-letter-watch-box">
        <a class="bt-button personal-letter" href="https://im.csdn.net/chat/qq_45704528" target="_blank" rel="noopener">私信</a>
        </div>
        <div class="opt-letter-watch-box"> 
            <a class="personal-watch bt-button" id="btnAttent" >关注</a>  
        </div>
    </div>
</div>
<div id="asideSearchArticle" class="aside-box">
	<div class="aside-content search-comter">
    <div class="aside-search aside-search-blog">         
        <input type="text" class="input-serch-blog" name="" autocomplete="off" value="" id="search-blog-words" placeholder="搜博主文章">
        <a class="btn-search-blog">
                    <img src="//csdnimg.cn/cdn/content-toolbar/csdn-sou.png?v=1587021042">
        </a>
    </div>
    </div>
</div>


<div id="asideHotArticle" class="aside-box">
	<h3 class="aside-title">热门文章</h3>
	<div class="aside-content">
		<ul class="hotArticle-list">
			<li>
				<a href="https://blog.csdn.net/qq_45704528/article/details/118635841" target="_blank"  data-report-click='{"mod":"popu_541","spm":"1001.2101.3001.4139","dest":"https://blog.csdn.net/qq_45704528/article/details/118635841","ab":"new"}'>
				面试官都震惊，你这网络基础可以啊！
					<img src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					<span class="read">146245</span>
                </a>
			</li>
			<li>
				<a href="https://blog.csdn.net/qq_45704528/article/details/119720386" target="_blank"  data-report-click='{"mod":"popu_541","spm":"1001.2101.3001.4139","dest":"https://blog.csdn.net/qq_45704528/article/details/119720386","ab":"new"}'>
				Linux常用命令总结
					<img src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					<span class="read">24621</span>
                </a>
			</li>
			<li>
				<a href="https://blog.csdn.net/qq_45704528/article/details/119699269" target="_blank"  data-report-click='{"mod":"popu_541","spm":"1001.2101.3001.4139","dest":"https://blog.csdn.net/qq_45704528/article/details/119699269","ab":"new"}'>
				基于SpringBoot + MyBatis的前后端分离实现在线办公系统
					<img src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					<span class="read">24493</span>
                </a>
			</li>
			<li>
				<a href="https://blog.csdn.net/qq_45704528/article/details/117451506" target="_blank"  data-report-click='{"mod":"popu_541","spm":"1001.2101.3001.4139","dest":"https://blog.csdn.net/qq_45704528/article/details/117451506","ab":"new"}'>
				java项目——CRM客户管理系统（SpringBoot+MyBatis）
					<img src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					<span class="read">6805</span>
                </a>
			</li>
			<li>
				<a href="https://blog.csdn.net/qq_45704528/article/details/119706205" target="_blank"  data-report-click='{"mod":"popu_541","spm":"1001.2101.3001.4139","dest":"https://blog.csdn.net/qq_45704528/article/details/119706205","ab":"new"}'>
				Redis详解
					<img src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
					<span class="read">4690</span>
                </a>
			</li>
		</ul>
	</div>
</div>
<div id="asideCategory" class="aside-box flexible-box">
    <h3 class="aside-title">分类专栏</h3>
    <div class="aside-content">
        <ul>
            <li class="">
                <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_11106570.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_11106570.html","ab":"new"}'>
                    <img src="https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                    <span class="title oneline">
                        <span class="text">Java实战项目</span>
                    </span>
                    <span class="count float-right">4篇</span>
                </a>
            </li>
            <li class="">
                <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_10893391.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_10893391.html","ab":"new"}'>
                    <img src="https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                    <span class="title oneline">
                        <span class="text">java零散知识点</span>
                    </span>
                    <span class="count float-right">2篇</span>
                </a>
            </li>
            <li class="">
                <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_11008652.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_11008652.html","ab":"new"}'>
                    <img src="https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                    <span class="title oneline">
                        <span class="text">Java从入门到精通</span>
                    </span>
                    <span class="count float-right">9篇</span>
                </a>
            </li>
            <li class="">
                <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_10745010.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_10745010.html","ab":"new"}'>
                    <img src="https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                    <span class="title oneline">
                        <span class="text">数据结构，算法，Mysql</span>
                    </span>
                    <span class="count float-right">9篇</span>
                </a>
            </li>
            <li class="">
                <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_10751133.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_10751133.html","ab":"new"}'>
                    <img src="https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                    <span class="title oneline">
                        <span class="text">JAVA</span>
                    </span>
                    <span class="count float-right">21篇</span>
                </a>
            </li>
            <li class="">
                <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_11121080.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_11121080.html","ab":"new"}'>
                    <img src="https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                    <span class="title oneline">
                        <span class="text">Spring全家桶</span>
                    </span>
                    <span class="count float-right">1篇</span>
                </a>
            </li>
            <li class="">
                <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_10811196.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_10811196.html","ab":"new"}'>
                    <img src="https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                    <span class="title oneline">
                        <span class="text">在线OJ题</span>
                    </span>
                    <span class="count float-right">8篇</span>
                </a>
            </li>
        </ul>
    </div>
    <p class="text-center">
        <a class="flexible-btn" data-fbox="aside-archive"><img class="look-more" src="https://csdnimg.cn/release/blogv2/dist/pc/img/arrowDownWhite.png" alt=""></a>
    </p>
</div>
<div id="asideNewComments" class="aside-box">
    <h3 class="aside-title">最新评论</h3>
    <div class="aside-content">
        <ul class="newcomment-list">
            <li>
                <a class="title text-truncate" target="_blank" href="https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18311078" data-report-click='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18311078","ab":"new"}' data-report-view='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18311078","ab":"new"}'>面试官都震惊，你这网络基础可以啊！</a>
                <p class="comment ellipsis">
                    <a href="https://blog.csdn.net/xiao_zhong_zhong" class="user-name" target="_blank">-何以解忧-: </a>
                    <span class="code-comments">拿来吧，顺手给个赞</span>
                </p>
            </li>
            <li>
                <a class="title text-truncate" target="_blank" href="https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18290569" data-report-click='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18290569","ab":"new"}' data-report-view='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18290569","ab":"new"}'>面试官都震惊，你这网络基础可以啊！</a>
                <p class="comment ellipsis">
                    <a href="https://blog.csdn.net/weixin_56548661" class="user-name" target="_blank">lgwwswswws: </a>
                    <span class="code-comments">震惊栏目组</span>
                </p>
            </li>
            <li>
                <a class="title text-truncate" target="_blank" href="https://blog.csdn.net/qq_45704528/article/details/119720386#comments_18264269" data-report-click='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_45704528/article/details/119720386#comments_18264269","ab":"new"}' data-report-view='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_45704528/article/details/119720386#comments_18264269","ab":"new"}'>Linux常用命令总结</a>
                <p class="comment ellipsis">
                    <a href="https://taylorswift.blog.csdn.net" class="user-name" target="_blank">Champhoenix: </a>
                    <span class="code-comments">不错</span>
                </p>
            </li>
            <li>
                <a class="title text-truncate" target="_blank" href="https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18239292" data-report-click='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18239292","ab":"new"}' data-report-view='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18239292","ab":"new"}'>面试官都震惊，你这网络基础可以啊！</a>
                <p class="comment ellipsis">
                    <a href="https://blog.csdn.net/weixin_42250040" class="user-name" target="_blank">weixin_42250040: </a>
                    <span class="code-comments">讲的好</span>
                </p>
            </li>
            <li>
                <a class="title text-truncate" target="_blank" href="https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18235989" data-report-click='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18235989","ab":"new"}' data-report-view='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_45704528/article/details/118635841#comments_18235989","ab":"new"}'>面试官都震惊，你这网络基础可以啊！</a>
                <p class="comment ellipsis">
                    <a href="https://blog.csdn.net/u012534041" class="user-name" target="_blank">毛毛虫呀: </a>
                    <span class="code-comments">66666666</span>
                </p>
            </li>
        </ul>
    </div>
</div>
<div id="asideNewNps" class="aside-box">
    <h3 class="aside-title">您愿意向朋友推荐“博客详情页”吗？</h3>
    <div class="aside-content">
        <ul class="newnps-list">
            <li class="newnps-item" data-type="强烈不推荐">
                <div class="newnps-img-box">
                    <img class="newnps-img active" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeel1.png" alt="">
                    <img class="newnps-img default" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeelGrey1.png" alt="">
                </div>
                <div class="newnps-text">强烈不推荐</div>
            </li>
            <li class="newnps-item" data-type="不推荐">
                <div class="newnps-img-box">
                    <img class="newnps-img active" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeel2.png" alt="">
                    <img class="newnps-img default" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeelGrey2.png" alt="">
                </div>
                <div class="newnps-text">不推荐</div>
            </li>
            <li class="newnps-item" data-type="一般般">
                <div class="newnps-img-box">
                    <img class="newnps-img active" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeel3.png" alt="">
                    <img class="newnps-img default" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeelGrey3.png" alt="">
                </div>
                <div class="newnps-text">一般般</div>
            </li>
            <li class="newnps-item" data-type="推荐">
                <div class="newnps-img-box">
                    <img class="newnps-img active" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeel4.png" alt="">
                    <img class="newnps-img default" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeelGrey4.png" alt="">
                </div>
                <div class="newnps-text">推荐</div>
            </li>
            <li class="newnps-item" data-type="强烈推荐">
                <div class="newnps-img-box">
                    <img class="newnps-img active" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeel5.png" alt="">
                    <img class="newnps-img default" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeelGrey5.png" alt="">
                </div>
                <div class="newnps-text">强烈推荐</div>
            </li>
        </ul>
        <div class="newnps-form-box">
        <div class="newnps-form">
            <input type="text" placeholder="请输入建议或反馈后点击提交" class="newnps-input">
            <span class="newnps-btn">提交</span>
        </div>
        </div>
    </div>
</div>
<div id="asideArchive" class="aside-box" style="display:block!important; width:300px;">
    <h3 class="aside-title">最新文章</h3>
    <div class="aside-content">
        <ul class="inf_list clearfix">
            <li class="clearfix">
            <a href="https://blog.csdn.net/qq_45704528/article/details/119799263" target="_blank" data-report-click='{"mod":"popu_382","spm":"1001.2101.3001.4136","dest":"https://blog.csdn.net/qq_45704528/article/details/119799263","ab":"new"}' data-report-view='{"mod":"popu_382","dest":"https://blog.csdn.net/qq_45704528/article/details/119799263","ab":"new"}'>RabbitMQ基础总结</a>
            </li>
            <li class="clearfix">
            <a href="https://blog.csdn.net/qq_45704528/article/details/119720386" target="_blank" data-report-click='{"mod":"popu_382","spm":"1001.2101.3001.4136","dest":"https://blog.csdn.net/qq_45704528/article/details/119720386","ab":"new"}' data-report-view='{"mod":"popu_382","dest":"https://blog.csdn.net/qq_45704528/article/details/119720386","ab":"new"}'>Linux常用命令总结</a>
            </li>
            <li class="clearfix">
            <a href="https://blog.csdn.net/qq_45704528/article/details/119706205" target="_blank" data-report-click='{"mod":"popu_382","spm":"1001.2101.3001.4136","dest":"https://blog.csdn.net/qq_45704528/article/details/119706205","ab":"new"}' data-report-view='{"mod":"popu_382","dest":"https://blog.csdn.net/qq_45704528/article/details/119706205","ab":"new"}'>Redis详解</a>
            </li>
        </ul>
        <div class="archive-bar"></div>
        <div class="archive-box">
                <div class="archive-title">2021</div> 
                <div class="archive-content">
                    <div class="archive-item">
                        <a href="https://blog.csdn.net/qq_45704528/article/month/2021/08" target="_blank" data-report-click='{"mod":"popu_538","spm":"1001.2101.3001.4138","ab":"new","dest":"https://blog.csdn.net/qq_45704528/article/month/2021/08"}'>
                        <span class="time">08月</span>
                        <span class="count">7篇</span>
                        </a>
                    </div>
                    <div class="archive-item">
                        <a href="https://blog.csdn.net/qq_45704528/article/month/2021/07" target="_blank" data-report-click='{"mod":"popu_538","spm":"1001.2101.3001.4138","ab":"new","dest":"https://blog.csdn.net/qq_45704528/article/month/2021/07"}'>
                        <span class="time">07月</span>
                        <span class="count">4篇</span>
                        </a>
                    </div>
                    <div class="archive-item">
                        <a href="https://blog.csdn.net/qq_45704528/article/month/2021/06" target="_blank" data-report-click='{"mod":"popu_538","spm":"1001.2101.3001.4138","ab":"new","dest":"https://blog.csdn.net/qq_45704528/article/month/2021/06"}'>
                        <span class="time">06月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                    <div class="archive-item">
                        <a href="https://blog.csdn.net/qq_45704528/article/month/2021/05" target="_blank" data-report-click='{"mod":"popu_538","spm":"1001.2101.3001.4138","ab":"new","dest":"https://blog.csdn.net/qq_45704528/article/month/2021/05"}'>
                        <span class="time">05月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                    <div class="archive-item">
                        <a href="https://blog.csdn.net/qq_45704528/article/month/2021/04" target="_blank" data-report-click='{"mod":"popu_538","spm":"1001.2101.3001.4138","ab":"new","dest":"https://blog.csdn.net/qq_45704528/article/month/2021/04"}'>
                        <span class="time">04月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                    <div class="archive-item">
                        <a href="https://blog.csdn.net/qq_45704528/article/month/2021/03" target="_blank" data-report-click='{"mod":"popu_538","spm":"1001.2101.3001.4138","ab":"new","dest":"https://blog.csdn.net/qq_45704528/article/month/2021/03"}'>
                        <span class="time">03月</span>
                        <span class="count">9篇</span>
                        </a>
                    </div>
                    <div class="archive-item">
                        <a href="https://blog.csdn.net/qq_45704528/article/month/2021/02" target="_blank" data-report-click='{"mod":"popu_538","spm":"1001.2101.3001.4138","ab":"new","dest":"https://blog.csdn.net/qq_45704528/article/month/2021/02"}'>
                        <span class="time">02月</span>
                        <span class="count">15篇</span>
                        </a>
                    </div>
                    <div class="archive-item">
                        <a href="https://blog.csdn.net/qq_45704528/article/month/2021/01" target="_blank" data-report-click='{"mod":"popu_538","spm":"1001.2101.3001.4138","ab":"new","dest":"https://blog.csdn.net/qq_45704528/article/month/2021/01"}'>
                        <span class="time">01月</span>
                        <span class="count">13篇</span>
                        </a>
                    </div>
                </div>
                <div class="archive-list-item"><a href="https://blog.csdn.net/qq_45704528/article/month/2020/11" target="_blank" data-report-click='{"mod":"popu_538","spm":"1001.2101.3001.4138","ab":"new","dest":""}'><span class="year">2020年</span><span class="num">1篇</span></a></div>
        </div>
    </div>
</div>
	<div id="footerRightAds" class="isShowFooterAds">
		<div class="aside-box">
			<div id="kp_box_57" data-pid="57"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- PC-博客详情页-矩形-左下视窗（自适应） -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-1076724771190722"
     data-ad-slot="1894159733"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=57&a=707&c=0&k=&spm=1001.2101.3001.5001&d=1&t=3&u=249af50f73674061925de1e16137239c" style="display: block;width: 0px;height: 0px;"></div>
		</div>
	</div>
    <!-- 详情页显示目录 -->
<!--文章目录-->
<div id="asidedirectory" class="aside-box">
    <div class='groupfile' id="directory">
        <h3 class="aside-title">目录</h3>
        <div class="align-items-stretch group_item">
            <div class="pos-box">
            <div class="scroll-box">
                <div class="toc-box"></div>
            </div>
            </div>
        </div>
    </div>
</div>
</aside>
<script>
	$("a.flexible-btn").click(function(){
		$(this).parents('div.aside-box').removeClass('flexible-box');
		$(this).parents("p.text-center").remove();
	})
</script>
<script type="text/javascript"  src="https://g.csdnimg.cn/user-tooltip/2.5/user-tooltip.js"></script>
<script type="text/javascript"  src="https://g.csdnimg.cn/user-medal/1.0.7/user-medal.js"></script>    </div>
<div class="recommend-right  align-items-stretch clearfix" id="rightAside" data-type="recommend">
    <aside class="recommend-right_aside">
        <div id="recommend-right" >
                        <div class='flex-column aside-box groupfile' id="groupfile">
                <div class="groupfile-div">
                <h3 class="aside-title">目录</h3>
                <div class="align-items-stretch group_item">
                    <div class="pos-box">
                        <div class="scroll-box">
                            <div class="toc-box"></div>
                        </div>
                    </div>
                </div>
                </div>
            </div>
                <div id="recommendAdBox">
                    <div id="kp_box_479" data-pid="479"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- PC-博客详情页-右侧视窗（自适应） -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-1076724771190722"
     data-ad-slot="3484057394"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=479&a=3267&c=0&k=&spm=1001.2101.3001.4834&d=1&t=3&u=d86f4bc4ff0a49448d834bb49975e3f4" style="display: block;width: 0px;height: 0px;"></div>
                </div>
            <div class='aside-box kind_person d-flex flex-column'>
                    <h3 class="aside-title">分类专栏</h3>
                    <div class="align-items-stretch kindof_item" id="kind_person_column">
                        <div class="aside-content">
                            <ul>
                                <li class="">
                                    <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_11106570.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_11106570.html","ab":"new"}'>
                                        <img src="https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                                        <span class="title oneline">
                                            <span class="text">Java实战项目</span>
                                        </span>
                                        <span class="count float-right">4篇</span>
                                    </a>
                                </li>
                                <li class="">
                                    <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_10893391.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_10893391.html","ab":"new"}'>
                                        <img src="https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                                        <span class="title oneline">
                                            <span class="text">java零散知识点</span>
                                        </span>
                                        <span class="count float-right">2篇</span>
                                    </a>
                                </li>
                                <li class="">
                                    <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_11008652.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_11008652.html","ab":"new"}'>
                                        <img src="https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                                        <span class="title oneline">
                                            <span class="text">Java从入门到精通</span>
                                        </span>
                                        <span class="count float-right">9篇</span>
                                    </a>
                                </li>
                                <li class="">
                                    <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_10745010.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_10745010.html","ab":"new"}'>
                                        <img src="https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                                        <span class="title oneline">
                                            <span class="text">数据结构，算法，Mysql</span>
                                        </span>
                                        <span class="count float-right">9篇</span>
                                    </a>
                                </li>
                                <li class="">
                                    <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_10751133.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_10751133.html","ab":"new"}'>
                                        <img src="https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                                        <span class="title oneline">
                                            <span class="text">JAVA</span>
                                        </span>
                                        <span class="count float-right">21篇</span>
                                    </a>
                                </li>
                                <li class="">
                                    <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_11121080.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_11121080.html","ab":"new"}'>
                                        <img src="https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                                        <span class="title oneline">
                                            <span class="text">Spring全家桶</span>
                                        </span>
                                        <span class="count float-right">1篇</span>
                                    </a>
                                </li>
                                <li class="">
                                    <a class="clearfix" target="_blank" href="https://blog.csdn.net/qq_45704528/category_10811196.html" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_45704528/category_10811196.html","ab":"new"}'>
                                        <img src="https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'">
                                        <span class="title oneline">
                                            <span class="text">在线OJ题</span>
                                        </span>
                                        <span class="count float-right">8篇</span>
                                    </a>
                                </li>
                            </ul>
                        </div>
                    </div>
            </div>
        </div>
    </aside>
</div>

</div>
<div class="mask-dark"></div>
<script type="text/javascript">
    var timert = setInterval(function(){
      sideToolbar = $(".csdn-side-toolbar");
      if (sideToolbar.length > 0) {
        sideToolbar.css('cssText','bottom:64px !important;')
        clearInterval(timert);
      }
    }, 200);
</script>
<script>
    var articleId = 118635841;
    var commentscount = 137;
    var curentUrl = "https://blog.csdn.net/qq_45704528/article/details/118635841";
    var myUrl = "https://my.csdn.net/";
    var highlight = ["震惊","网络","面试官","都","基础"];//高亮数组
    var isRecommendModule = true;
    var isBaiduPre = true;
    var baiduCount = 2;
    var share_card_url = "https://blog.csdn.net/qq_45704528/article/shareArticleCardPage?article_id=118635841"
	var articleType = 1;
    var baiduKey = "面试官都震惊，你这网络基础可以啊！";
    var userNewReport = false;
    var needInsertBaidu = true;
    var recommendRegularDomainArr = ["blog.csdn.net/.+/article/details/","download.csdn.net/download/","edu.csdn.net/course/detail/","ask.csdn.net/questions/","bbs.csdn.net/topics/","www.csdn.net/gather_.+/"]
    var codeStyle = "";
    var baiduSearchType = "title";
    var canRead = true;
    var blogMoveHomeArticle = false;
    var showPcWindowAd = false;
    var showSearchText = "";
    var linkPage = true;
    var articleSource = 1;
    var articleReport = '{"pid": "blog", "spm":"1001.2101"}';
    var isShowToQuestion = false;
    var baiduSearchChannel = 'pc_relevant'
    var baiduSearchIdentification = '.no_search_link'
    var initRewardObject = {
        giver: currentUserName,
        anchor: username,
        articleId: articleId,
        sign: ''
    }
</script>
<script src="https://csdnimg.cn/public/sandalstrap/1.4/js/sandalstrap.min.js"></script>
<div class="skin-boxshadow"></div>
<div class="directory-boxshadow"></div>
<div class="pay-code">
    <div class="pay-money">实付<span class="pay-money-span" data-nowprice='' data-oldprice=''>元</span></div>
    <div class="content-blance"><a class="blance-bt" href="javascript:;">使用余额支付</a></div>
    <div class="content-code">
    <div id="payCode" data-id="">
            <div class="renovate">
                <img src="https://csdnimg.cn/release/blogv2/dist/pc/img/pay-time-out.png">
                <span>点击重新获取</span>
            </div>
        </div>
        <div class="pay-style"><span><img src="https://csdnimg.cn/release/blogv2/dist/pc/img/weixin.png"></span><span><img src="https://csdnimg.cn/release/blogv2/dist/pc/img/zhifubao.png"></span><span><img src="https://csdnimg.cn/release/blogv2/dist/pc/img/jingdong.png"></span><span class="text">扫码支付</span></div>
    </div>
    <div class="bt-close"><svg t="1567152543821" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10924" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="12"><defs><style type="text/css"></style></defs><path d="M512 438.378667L806.506667 143.893333a52.032 52.032 0 1 1 73.6 73.621334L585.621333 512l294.485334 294.485333a52.074667 52.074667 0 0 1-73.6 73.642667L512 585.621333 217.514667 880.128a52.053333 52.053333 0 1 1-73.621334-73.642667L438.378667 512 143.893333 217.514667a52.053333 52.053333 0 1 1 73.621334-73.621334L512 438.378667z" fill="" p-id="10925"></path></svg></div>
    <!-- <p style="margin-top: 8px;font-size: 14px;" class="text-center">支付成功即可阅读</p> -->
    <div class="pay-balance">
    <input type="radio" class="pay-code-radio" data-type="details"> 
    <span class="span">钱包余额</span>
    <span class="balance" style="color:#FC5531;font-size:14px;">0</span>  
    <div class="pay-code-tile">
        <img src="https://csdnimg.cn/release/blogv2/dist/pc/img/pay-help.png" alt="">
        <div class="pay-code-content">
            <div class="span">
                <p class="title">抵扣说明：</p>
                <p> 1.余额是钱包充值的虚拟货币，按照1:1的比例进行支付金额的抵扣。<br> 2.余额无法直接购买下载，可以购买VIP、C币套餐、付费专栏及课程。</p>
            </div>
        </div>
    </div>
    </div>
    <a class="pay-balance-con" href="https://i.csdn.net/#/wallet/balance/recharge" target="_blank"><img src="https://csdnimg.cn/release/blogv2/dist/pc/img/recharge.png" alt=""><span  >余额充值</span></a>
</div>
<div style="display:none;">
	<img src="" onerror='setTimeout(function(){if(!/(csdn.net|iteye.com|baiducontent.com|googleusercontent.com|360webcache.com|sogoucdn.com|bingj.com|baidu.com)$/.test(window.location.hostname)){window.location.href="\x68\x74\x74\x70\x73\x3a\x2f\x2f\x77\x77\x77\x2e\x63\x73\x64\x6e\x2e\x6e\x65\x74"}},3000);'>
</div>
</body>
<script src="https://csdnimg.cn/release/blogv2/dist/components/js/pc_wap_highlight-db1e81323a.min.js" type="text/javascript"></script>
<script src="https://csdnimg.cn/release/blogv2/dist/components/js/pc_wap_common-6a9acd4c62.min.js" type="text/javascript"></script>
<script src="https://csdnimg.cn/release/blogv2/dist/components/js/edit_copy_code-1320dfe85c.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="https://csdnimg.cn/release/blog_editor_html/release1.6.12/ckeditor/plugins/codesnippet/lib/highlight/styles/atom-one-light.css">
<script>
 // 全局声明
 if (window.csdn === undefined) {
      window.csdn = {};
    }
    window.csdn.sideToolbar = {
        options: {
            report:{
                isShow: true,
            },
            qr: {
                isShow: false,
            },
            guide: {
                isShow: true
            }
        }
    }
    $(function(){
        $(document).on('click',"a.option-box[data-type='report']",function() {
            window.csdn.userLogin.loadAjax(function(res){
                if(userNewReport){
                    showReportNew(false,articleTitles);
                }else{
                    showReport(false,articleTitles);
                }
            })
        });
    })
</script>
    <script src="https://g.csdnimg.cn/baidu-search/1.0.9/baidu-search.js"  type="text/javascript"></script>
<script src="https://csdnimg.cn/release/download/old_static/js/qrcode.js"></script>
<script src="https://g.csdnimg.cn/lib/qrcode/1.0.0/qrcode.min.js"></script>
<script src="https://g.csdnimg.cn/user-ordercart/2.0.6/user-ordercart.js" type="text/javascript"></script>
<script src="https://g.csdnimg.cn/user-ordertip/4.1.3/user-ordertip.js" type="text/javascript" ></script>
<script src="https://csdnimg.cn/release/blogv2/dist/pc/js/common-24fa4dcb20.min.js" type="text/javascript"></script>
<script src="https://csdnimg.cn/release/blogv2/dist/pc/js/detail-44f0825236.min.js" type="text/javascript"></script>
<script src="https://csdnimg.cn/release/blogv2/dist/pc/js/column-8eca907613.min.js" type="text/javascript"></script>
<script src="https://g.csdnimg.cn/side-toolbar/3.0/side-toolbar.js" type="text/javascript"></script>
<script src="https://g.csdnimg.cn/copyright/1.0.4/copyright.js" type="text/javascript"></script>
<script>
    $(".MathJax").remove();
    if ($('div.markdown_views pre.prettyprint code.hljs').length > 0) {
        $('div.markdown_views')[0].className = 'markdown_views';
    }
</script>
<script type="text/javascript" src="https://csdnimg.cn/release/blog_mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
            "HTML-CSS": {
                    linebreaks: { automatic: true, width: "94%container" },
                    imageFont: null
            },
            tex2jax: {
                preview: "none",
                ignoreClass:"title-article"
            },
            mml2jax: {
                preview: 'none'
            }
    });
</script>
<script type="text/javascript" crossorigin src="https://g.csdnimg.cn/login-box/1.1.7/login-box.js"></script></html>
